• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> Klick

Tatsächliche Größe eines Bildes ändern

bginner

Ingrid Marie
Registriert
13.12.09
Beiträge
266
Hallo zusammen,

ich habe schon in diversen Forum nach einer Lösung gesucht, aber nie das pasende gefunden.
Immer wieder wird über Skalierung von Bildern gesprochen was ich ja eben nicht will.

Zu meinem Problem:
Ich neme in meiner App Fotos mit der hinteren Kamera auf und speichere diese Daten als NSData in einer property-List.
Allerdings haben diese Bilder eine Größe von 2592x1936 Pixel und das ist viel zu groß und frisst zu viel Speicherplatz. Kann ich diese Bilder nicht irgendwie verkleinern? Eine Größe von 640x480 z.B. würde für mich vollkommen ausreichen und dann nimmt das Bild auch nur wenige KBs ein. Durch die Kompriemierung mit der Standardmethode UIImagePNGRepresentation(image, compression) komm ich alleine nicht weiter. Hat jemand eine Idee?
 
Nett gedacht, aber was soll ich mit einem Programm? Ich muss die Bilder die man mit meiner App machen kann ja programmatisch verarbeiten? D.h. innerhalb meines Programmcode die Bilder entsprechend bearbeiten. Hat jemand von euch eine Idee ich mein Vorhaben umsetzn könnte?
 
Du willst also einen 640x480 großen Ausschnitt aus einem 2592x1936 goßen Bild?
 
Nein, ich möchte keinen Ausschnitt. Ich möchte programmatisch in XCode dieses Bild mit der Größe 2592x1936 verkleinern, so dass das Bild ungefähr eine Größe von 640x480 hat, kann von mir aus auch noch etwas kleiner sein, darum gehts ja nicht, es geht mir darum wie ich es programmieren muss. und deswegen frage ich höflich nach ob mir nicht vielleicht jemand einen Tipp geben könnte.
 
Ich habe nochmals nachgefragt, weil man das, was du beschreibst Skalieren nennt. Und dazu hast du ja schon einiges gefunden ;)
 
Wenn ich das Bild skaliere und es somit kleiner mache, nimmt das Bild den selben Speicherplatz ein. Wenn aber eine echte Verkleinerung stattfindet ist das eben nicht der Fall. Beispiel Photoshop...da kann ich einstellen wie groß das Bild sein soll und dann erhalte ich die neue Größe. und jetzt suche ich noch einen Trick oder die nötigen Funktionen die ich brauche um die tatsächliche Größe eines Bildes zu verkleinern (nicht durch Skalierung !!!!!!!) und zwar muss ich das programmatisch in XCode lösen, ich brauche keine extra Software. Kann mir jemand weiterhelfen?

EDIT: Danke an Buhmi, werde ich mir mal ansehen.
 
Was Du brauchst, nennt man "Skalierung", auch wenn Du das aus irgendeinem Grund nicht glaubst. Das Bild würde nur dann den gleichen Speicherplatz einnehmen, wenn Du nicht skalierst, sondern nur die Pixeldichte (in Pixel pro Längeneinheit, also die physische Bildgröße) änderst.

Normalerweise reicht es, wenn man eine neue NSBitmapImageRep in der gewünschten Größe anlegt und das System dort das Bild hineinzeichnen lässt. Das ist alles. In iOS gibt es das allerdings nicht direkt und man muss auf die "niederwertigen" CGImage-Funktionen zurückgreifen. Anregungen dazu gibt es hier: http://paulsolt.com/2010/09/ios-converting-uiimage-to-rgba8-bitmaps-and-back/