Ungenaue NSData-Größe in Byte angegeben

8

Ich habe ein Bild mit 13,3 MB aufgenommen und es zu XCode hinzugefügt. Ich bin mir bewusst, dass XCode beim Kompilieren einige Tricks vornimmt, um die Dateigröße zu reduzieren. Ich tat dies, um zu testen, wie groß das Bild jetzt war, nachdem es in Daten umgewandelt wurde:

%Vor%

Die Länge, die ich zurückbekommen habe, war 26758066 . Wenn das in Bytes ist, dann liest es sich für mich als 26.7MB. Wie ist das Bild plötzlich so groß? Gibt es eine andere Möglichkeit für mich, das Bild in Datenform zu bekommen, ohne zuerst durch UIImage zu gehen?

EDIT: Weitere Tests zeigen, dass dies funktioniert, und bringt eine Datenlänge von ~ 13.3MB - die erwartete Menge:

%Vor%     
Andrew 27.03.2013, 10:17
quelle

1 Antwort

7

Was Ihr Code tut, ist, das Bild in den Speicher zu dekomprimieren und dann als JPEG mit dem höchsten Qualitätsverhältnis ( q=1.0 ) neu zu komprimieren. Deshalb ist das Bild plötzlich so groß.

Wenn Sie die im Ressourcenpaket gespeicherte Datei überprüfen möchten, fragen Sie NSBundle nach dem vollständigen Dateipfad und verwenden Sie NSFileManager , um die Dateigröße zu lesen. Sie können das gleiche auch manuell auf Ihrem Mac tun, werfen Sie einfach einen Blick in das BUILD_PRODUCTS_DIR für Ihr Projekt.

    
zoul 27.03.2013 10:22
quelle