Próbuję przetworzyć obraz w CoreGraphics, a następnie przywrócić przetworzony obraz z powrotem do NSImage
w celu zapisania i wyświetlenia. Mam dużo informacji o tym, jak wykonywać te funkcje w systemie iOS, ale brakuje metod pomocniczych w NSImage
. W iOS metoda klasy to imageWithCGImage:
, jak możesz to zrobić w Mac OS?Uzyskiwanie NSImage z CGImageRef
24
A
Odpowiedz
42
Metoda dopasowania w NSImage to initWithCGImage:size:
.
Drugi argument przyjmuje rozmiar obrazu w punktach. Współczynnik między wielkością w pikselach (obrazu CG) i wielkością w punktach jest współczynnikiem skali. Tak więc, na przykład, jeśli masz CGImage 100 x 100 pikseli i przekazujesz rozmiar (NSSize){ 50.0, 50.0 }
, obraz będzie miał 50 punktów i podwójną rozdzielczość.
Zwykle należy po prostu przekazać rozmiar w pikselach (z CGImage) jako rozmiar w punktach. W przypadku obsługi wielu czynników skalujących, lepiej jest użyć pojedynczego NSImage z wieloma NSImageReps, jak to, co otrzymujesz z -[NSWorkspace iconForFileType:]
dla większości typów lub z tworzenia NSImage z typowego pliku .icns.
NSZeroSize jest skrótem dla "tego samego rozmiaru co CGImage". – Ken
@ Ken Dziękuję Kenowi, to kluczowe informacje! –