Mam kolekcję obiektów, które opisują nazwę obrazu, jego rozmiar i jego lokalizację X/Y. Kolekcja jest sortowana według "warstw", więc mogę złożyć obrazy w pewien rodzaj algorytmu malarskiego.Jak połączyć kilka NSImages w jeden duży obraz?
Z tego, mogę określić prostokąt niezbędnej do przechowywania wszystkich zdjęć, więc teraz to, co chcę zrobić, to:
- Tworzenie jakiś bufor do przechowywania wyniku (NS równowartość co iPhoneOS wzywa UIGraphicsContext.)
- Draw wszystkie obrazy do bufora.
- pniaka nowy NSImage z wmontował wyniku buforze.
W iPhoneOS, jest to kod, który robi to, co chcę:
UIGraphicsBeginImageContext (woSize);
CGContextRef ctx = UIGraphicsGetCurrentContext();
[[UIColor clearColor] set];
CGContextFillRect(ctx, NSMakeRect(0, 0, woSize.width, woSize.height));
// draw my various images, here.
// i.e. Various repetitions of [myImage drawAtPoint:somePoint];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
Co szukam jest, jak to zrobić w Cocoa pulpitu/NS.
Dzięki!
Docs powiedzieć Przestarzałe w Snow-Leopard. „. Ważne: Jeśli piszesz nowy kod, lub aktualizowanie starego kodu, należy unikać stosowania tej metody Zamiast tego należy użyć drawAtPoint: fromRect: Operation: frakcja: albo drawInRect: fromRect: Operation: Frakcja: Metoda rysować Mimo że sama metoda nie jest przestarzała, jej zachowanie nie jest zalecane do ogólnego użytku. " Ale spróbuję drawAtPoint, a jeśli to zadziała, podaję poprawny znacznik odpowiedzi. (Możesz edytować odpowiedź.) Dzięki! – Olie
Dobra rozmowa. Edytowane. Powód, jak zakładam, polega na tym, że sprawdzanie wyciągu nie ma źródła prostego i złożonego. To jest w porządku, o ile jesteś pewny, że przekazujesz sensowny rect (i jest trochę szybszy), ale w rzeczywistości jest bezpieczniej korzystać z drawa. – andyvn22
Tak, lockFocus było czego mi brakuje (np intuicyjny nazwa, nie mogę sobie wyobrazić, jak ja nie sądzę, aby sprawdzić docs że;) Dzięki! – Olie