栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

libGDX:如何将纹理裁剪为圆形

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

libGDX:如何将纹理裁剪为圆形

我不知道是否有更简单的方法,但是我提出了一种使用遮罩并将遮罩与原始像素图合并为结果像素图的方法。

public void pixmapMask(Pixmap pixmap, Pixmap mask, Pixmap result, boolean invertMaskAlpha){    int pixmapWidth = pixmap.getWidth();    int pixmapHeight = pixmap.getHeight();    Color pixelColor = new Color();    Color maskPixelColor = new Color();    Pixmap.Blending blending = Pixmap.getBlending();    Pixmap.setBlending(Blending.None);    for (int x=0; x<pixmapWidth; x++){        for (int y=0; y<pixmapHeight; y++){ Color.rgba8888ToColor(pixelColor, pixmap.getPixel(x, y));     // get pixel color Color.rgba8888ToColor(maskPixelColor, mask.getPixel(x, y));   // get mask color maskPixelColor.a = (invertMaskAlpha) ? 1.0f-maskPixelColor.a : maskPixelColor.a;    // IF invert mask pixelColor.a = pixelColor.a * maskPixelColor.a;    // multiply pixel alpha * mask alpha result.setColor(pixelColor); result.drawPixel(x, y);        }    }    Pixmap.setBlending(blending);}

遮罩像素图上唯一看到的是Alpha通道。它从蒙版中采样alpha并将其与原始pixamp中的alpha合并,然后将值写入结果pixmap中。

在您的情况下,只要Alpha为“ 1f”,就可以用任何颜色在面具像素图上绘制一个实心圆。然后,结果像素图将是您原来的像素图,并被裁剪为一个圆。

注意: “ invertMaskAlpha”布尔值使您可以翻转蒙版的Alpha通道。因此,如果将此布尔值设置为“
true”,您将拥有原始像素图,其中的圆被切掉,仅边缘在圆外。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/596158.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号