2013-03-19 13 views
5

網膜ディスプレイで作業するときに問題が発生しました。 NSImageのサイズは正しいですが、NSBitmapImageRepを作成してファイルに書き込むと、画像のサイズは元の画像の2倍になります。私はそれを非網膜ディスプレイに使用すると、そのような問題はありません。画像を扱う際の網膜ディスプレイの問題

  • 私は3840x2160寸法で画像を得ることが
  • をファイルに書き込め私は
  • 上のいくつかの図面は、私は図面
  • でイメージからNSBitmapImageRepを作成しないファイルからNSImageでは(1920×1080)
  • を作成

何が原因でしょうか?



私は、画像を開いて編集することなく、それを保存した場合、私は正しい寸法の画像を取得

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

この回答を確認してください。 http://stackoverflow.com/a/17510651/1159775 – hebinda

答えて

0

画像のビットマップ表現はピクセル単位で測定されます。 は、サイズの2倍のです。 NSImageは網膜デバイス上の1ポイントあたり2ピクセルの大きさをあなたに与える。あなたに与えるものに何も間違いはありません。

+0

特に新しい次元が難しくなっていることをする必要があることはありますか? –

+0

問題は、画像を開いて自分のアプリで処理すると、画像を保存するときに、前回と同じ大きさのピクセルが2倍になるということです。そして、元の画像サイズを維持する必要があります。 – hockeyman

+0

これらのステップごとに使用しているコードを投稿できますか?私はその問題を避けるために設定できるフラグがあると思います。 –

関連する問題