2013-03-19 60 views
5

在視網膜顯示上工作時遇到了問題。 NSImage的大小是正確的,但如果我從它創建NSBitmapImageRep並將其寫入文件,我得到的圖像女巫的大小是原始圖像的兩倍大。在非視網膜顯示器上使用時沒有這樣的問題。使用圖像時的視網膜顯示問題

  • 我從文件(1920×1080)
  • 創建NSImage中我做了一些圖紙上
  • 我從圖紙圖像創建NSBitmapImageRep
  • 我把它寫到文件
  • 我得到的圖像與3840X2160尺寸

是什麼原因造成的?



如果我打開圖像並保存它沒有編輯,我得到

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 2016-02-03 16:00:15

回答

0

圖像的位圖表示以像素爲單位進行測量正確的尺寸圖像。它的兩倍大小。 NSImage爲您提供了一個尺寸,在視網膜設備上每點測量2個像素點。它給你的東西沒有錯。

+0

有什麼特別的你需要做的,新的維度變得困難? – 2013-03-19 13:25:53

+0

問題是,當我打開圖像並使用我的應用程序進行處理時,然後當我保存圖像時,以像素爲單位獲取圖像的兩倍。我需要保持原始圖像的大小。 – hockeyman 2013-03-19 13:34:58

+0

你可以發佈你正在使用的每個步驟的代碼嗎?我認爲你可以設置一個標誌來避免這個問題。 – 2013-03-19 13:38:57