MCPcopy Create free account
hub / github.com/JetBrains/skija / drawAlpha

Method drawAlpha

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

Source from the content-addressed store, hash-verified

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

Callers 1

drawMethod · 0.95

Calls 15

makeS32Method · 0.95
makeXYWHMethod · 0.95
makeFromBitmapMethod · 0.95
makeXYWHMethod · 0.95
allocPixelsMethod · 0.80
drawImageRectMethod · 0.80
extractAlphaMethod · 0.80
setStrokeWidthMethod · 0.80
setModeMethod · 0.80
drawRectMethod · 0.80
toRectMethod · 0.80
getWidthMethod · 0.65

Tested by

no test coverage detected