Próbuję utworzyć maskę obrazu, która pochodzi z dwóch istniejących obrazów.Tworzenie maski za pomocą CGImageMaskCreate to wszystko czarny (iphone)
Najpierw początek tworzeniu kompozytu, który składa się z małego obrazu, która jest obrazem maskowania i powiększeniu obraz, który jest taki sam rozmiar jak tle:
UIImage * BaseTextureImage = [UIImage imageNamed:@"background.png"];
UIImage * MaskImage = [UIImage imageNamed:@"my_mask.jpg"];
UIImage * ShapesBase = [UIImage imageNamed:@"largerimage.jpg"];
UIImage * MaskImageFull;
CGSize finalSize = CGSizeMake(480.0, 320.0);
UIGraphicsBeginImageContext(finalSize);
[ShapesBase drawInRect:CGRectMake(0, 0, 480, 320)];
[MaskImage drawInRect:CGRectMake(150, 50, 250, 250)];
MaskImageFull = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
mogę Efekt ten UIImage (MaskImageFull) i wygląda na to, że jest to pełnowymiarowy rozmiar tła i jest to białe tło z moim obiektem maskowym w kolorze czarnym, we właściwym miejscu na ekranie.
I potem zdać MaskImageFull UIImage przez to:
CGImageRef maskRef = [maskImage CGImage];
CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(maskRef),
CGImageGetHeight(maskRef),
CGImageGetBitsPerComponent(maskRef),
CGImageGetBitsPerPixel(maskRef),
CGImageGetBytesPerRow(maskRef),
CGImageGetDataProvider(maskRef), NULL, false);
CGImageRef masked = CGImageCreateWithMask([image CGImage], mask);
UIImage* retImage= [UIImage imageWithCGImage:masked];
Problemem jest to, że retImage jest cały czarny. Jeśli wyślesz gotowy UIImage jako maskę, działa dobrze, to właśnie kiedy próbuję zrobić to z wielu obrazów, które zepsuł.
Pomyślałem, że to coś w przestrzeni kolorów, ale nie można tego naprawić. Każda pomoc jest doceniana!
Pomógł mi bardzo. Czy możesz dodać nagłówek i stopkę funkcji, aby zakończyć? – Eden
Co to jest thumbnailPoint.x dokładnie?! @catlan –
@ Reza.Ab przepraszam, nie pamiętam. scaled * również wygląda dziwnie 9 lat później. W większości przypadków zakładam mask rect, a obraz rect powinien być taki sam. Wypróbuj go i daj nam znać, co znajdziesz, – catlan