5
Mam kilka ikon .png, które są maskami alfa. Muszę renderować je jako obraz do rysowania za pomocą zestawu SDK systemu Android.Jak klipować i wypełniać płótno przy użyciu maski alfa
na iPhone, używam następujących aby uzyskać taki wynik, przekształcając „obraz” alfa maska do wizerunku „imageMasked” używając czarny jako wypełnienia:
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef context = CGBitmapContextCreate(NULL, thumbWidth,
thumbHeight, 8, 4*thumbWidth, colorSpace, kCGImageAlphaPremultipliedFirst);
CGRect frame = CGRectMake(0,0,thumbWidth,thumbHeight);
CGContextClipToMask(context, frame, [image CGImage]);
CGContextFillRect(context, frame);
CGImageRef imageMasked = CGBitmapContextCreateImage(context);
CGContextRelease(context);
Jak mogę zrealizować powyższe Android SDK?
zacząłem pisać, co następuje:
Drawable image = myPngImage;
final int width = image.getMinimumWidth();
final int height = image.getMinimumHeight();
Bitmap imageMasked = Bitmap.createBitmap(width,
height, Config.ARGB_8888);
Canvas canvas = new Canvas(iconMasked);
image.draw(canvas); ???
nie jestem znalezienie jak zrobić wycinek na imageMasked używając obrazu.
Jestem prawdopodobnie nie dostać się pytanie, ale jeśli przypisać obraz z alfa aby zobaczyć - a tam będzie. –
Próbuję tutaj przekonwertować bitmapę alfa na obszar przycinania i użyć go do wypełnienia. Zasadniczo stosowanie maski alfa. Wszyscy inni chętni na odpowiedź? –
Co próbuję zrobić, to coś wzdłuż tych linii: końcowa szerokość int = ikona.getMinimumWidth(); końcowa int height = icon.getMinimumHeight(); \t \t \t \t bitmapy iconMasked = Bitmap.createBitmap (szerokość wysokość Config.ARGB_8888); Płótno canvas = nowe płótno (iconMasked); final Region region = icon.getTransparentRegion(); canvas.clipRegion (region); canvas.drawARGB (255, 0, 0, 0); Problem z tym podejściem polega na tym, że moja ikona zwraca wartość null z getTransparentRegion(). Nie spodziewałem się tego, więc wciąż szukam odpowiedzi. –