Ich habe einige .png-Symbole, die Alphamasken sind. Ich muss sie mit dem Android SDK als ein Bild zeichnen.Wie man eine Leinwand mit einer Alpha-Maske schneidet und füllt
Auf dem iPhone, verwende ich nach dem dieses Ergebnis zu erhalten, das „Bild“ Alpha-Maske auf den ‚imageMasked‘ Bild mit schwarz als Füllung Umwandlung:
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);
Wie erreichen ich die oben in Android SDK?
Ich habe angefangen, folgendes zu schreiben: Bild
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); ???
Ich bin nicht zu finden, wie Sie dies tun Sie den Ausschnitt auf imageMasked verwenden.
ich bin wahrscheinlich die Frage nicht, aber wenn Sie Bild mit Alpha Bildansicht zuweisen - alpha da sein. –
Ich versuche hier, die Alpha-Bitmap in eine Clipping-Region zu konvertieren und diese für die Füllung zu verwenden. Im Wesentlichen eine Alpha-Maske anwenden. Irgendwelche anderen Nehmer auf eine Antwort? –
Was ich versuche zu tun, ist etwas in diesen Zeilen: final int width = icon.getMinimumWidth(); final int Höhe = icon.getMinimumHeight(); \t \t \t \t Bitmap iconMasked Bitmap.createBitmap = (Breite, Höhe , Config.ARGB_8888); Canvas Canvas = neues Canvas (iconMasked); letzte Region region = icon.getTransparentRegion(); canvas.clipRegion (Region); canvas.drawARGB (255, 0, 0, 0); Das Problem mit diesem Ansatz ist mein Symbol ist eine Null aus getTransparentRegion() zurückgeben. Ich habe das nicht erwartet, also bin ich immer noch auf der Suche nach einer Antwort. –