2013-03-19 15 views
5

Ich habe Probleme bei der Arbeit mit Retina-Display. NSBildgröße ist korrekt, aber wenn ich NSBitmapImageRep daraus erstelle und in Datei schreibe, bekomme ich ein Bild, dessen Größe doppelt so groß ist wie das Originalbild. Es gibt kein solches Problem, wenn ich es auf nicht Retina-Display verwende.Retina-Anzeige Probleme beim Arbeiten mit Bildern

  • Ich schaffe NSImage aus Datei (1920x1080)
  • Ich habe einige Zeichnungen auf
  • I NSBitmapImageRep von Bild mit Zeichnungen erstellen
  • ich es schreiben
  • ich mit 3840x2160 Größen Bild in Datei

Was könnte das verursachen?



Wenn ich Bild öffnen und ohne Bearbeitung speichern habe ich das Bild korrekten Abmessungen

NSImage *imageFromFile = [[NSImage alloc] initWithContentsOfURL:fileURL]; 
NSBitmapImageRep *newRepresentation = [[NSBitmapImageRep imageRepsWithData:[imageFromFile TIFFRepresentation]]; 
NSData *savingData = [newRepresentation representationUsingType: NSPNGFileType properties: nil]; 
[savingData writeToFile:desiredFileLocationAndName atomically:no]; 
+0

Überprüfen Sie diese Antwort. http://StackOverflow.com/a/17510651/1159775 – hebinda

Antwort

0

Eine Bitmap-Darstellung des Bildes in Pixeln gemessen wird. Es ist doppelt so groß. Das NSImage gibt Ihnen eine Größe in Punkten, die auf Retina-Geräten 2 Pixel pro Punkt messen. Es ist nichts falsch daran, was es dir gibt.

+0

Gibt es etwas Besonderes, das Sie tun müssen, dass die neuen Dimensionen schwierig machen? –

+0

Das Problem ist, dass, wenn ich das Bild öffne und es mit meiner App bearbeite, wenn ich das Bild speichere, bekomme ich es doppelt so groß wie vorher in Pixeln. Und ich muss die ursprüngliche Bildgröße beibehalten. – hockeyman

+0

Können Sie den Code, den Sie für jeden dieser Schritte verwenden, veröffentlichen. Ich denke, es gibt eine Flagge, die Sie einstellen können, um dieses Problem zu vermeiden. –

Verwandte Themen