MCPcopy Create free account
hub / github.com/HumbleUI/Skija / drawAlpha

Method drawAlpha

examples/scenes/src/BitmapScene.java:203–229  ·  view source on GitHub ↗
(Canvas canvas, IRect target, IRect screen, float dpi)

Source from the content-addressed store, hash-verified

201
202
203 public void drawAlpha(Canvas canvas, IRect target, IRect screen, float dpi) {
204 try (var src = new Bitmap();
205 var dst = new Bitmap();)
206 {
207 var srcInfo = ImageInfo.makeS32((int) (target.getWidth() * dpi), (int) (target.getHeight() / 2 * dpi), ColorAlphaType.UNPREMUL);
208 src.allocPixels(srcInfo);
209 int len = (int) (target.getWidth() / 2 * dpi);
210 for (int x = 0; x < len; ++x) {
211 int alpha = (int) (255f * x / len);
212 int color = (alpha << 24) | (alpha << 16) | (0 << 8) | (255 - alpha);
213 src.erase(color, IRect.makeXYWH(x, 0, 1, (int) (target.getHeight() / 2 * dpi)));
214 }
215 try (var image = Image.makeRasterFromBitmap(src.setImmutable());) {
216 canvas.drawImageRect(image, Rect.makeXYWH(target.getLeft(), target.getTop(), target.getWidth(), target.getHeight() / 2));
217 }
218
219 if (src.extractAlpha(dst)) {
220 try (var image = Image.makeRasterFromBitmap(dst.setImmutable());) {
221 canvas.drawImageRect(image, Rect.makeXYWH(target.getLeft(), target.getTop() + target.getHeight() / 2, target.getWidth(), target.getHeight() / 2));
222 }
223 }
224 }
225
226 try(var stroke = new Paint().setColor(0xFFE5E5E5).setMode(PaintMode.STROKE).setStrokeWidth(1);) {
227 canvas.drawRect(target.toRect(), stroke);
228 }
229 }
230
231 public void drawErase(Canvas canvas, IRect target, IRect screen, float dpi) {
232 var w = target.getWidth() / 2;

Callers 1

drawMethod · 0.95

Calls 13

makeS32Method · 0.95
makeRasterFromBitmapMethod · 0.95
allocPixelsMethod · 0.80
drawImageRectMethod · 0.80
extractAlphaMethod · 0.80
setStrokeWidthMethod · 0.80
setModeMethod · 0.80
drawRectMethod · 0.80
getWidthMethod · 0.65
getHeightMethod · 0.65
eraseMethod · 0.45
setImmutableMethod · 0.45

Tested by

no test coverage detected