2017-03-08 2 views
0

Hier ist der Code, den ich verwenden:Warum ist TIFFrepresentation größer als die eigentliche Bilddatei?

NSImage *image = [[NSBundle bundleForClass:[self class]] imageForResource:@"test.jpg"]; 
NSData *originalData = [image TIFFRepresentationUsingCompression:NSTIFFCompressionJPEG factor:1.]; 

Die originalData.length gibt mir 1.802.224 Byte (1,7 MB). Die Bildgröße auf der Festplatte beträgt 457 KB. Warum wird TIFFRepresentation größer und welche Darstellung sollte ich verwenden, um das Originalbild zu erhalten (ich möchte das Bild über das Netzwerk übertragen)?

Antwort

3

TIFF ist viel größer als JPEG. Keine Überraschung dort.

Die Antwort auf Ihre eigentliche Frage ist jedoch: keine "Darstellung" verwenden. Sie haben die Daten (nämlich die Datei selbst); schicken Sie es! Verwandle die Image-Datei nicht in einen NSMage; nimm es als NSData.

+0

hm. Im Grunde genommen muss ich in Szenarien, in denen der Nutzer ein Bild zieht und ablegt, nur einen zusätzlichen Verweis auf eine Datei, die neben dem Bild (das in der Benutzeroberfläche verwendet wird) abgelegt hat. – peetonn

+1

Sie könnten eine JPEG-Darstellung des Bildes erstellen, aber das scheint ziemlich verschwenderisch zu sein, wenn die Datei auf der Festplatte ein JPEG ist. – matt

Verwandte Themen