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

我通过android开发实现了我的目标,如该链接所示:[从Android中的位图裁剪圆形区域,](http://codingdict.com/questions/148437 但是

使用libGDX框架实现呢?我尝试Pixmap与我合作,但没有成功。

任何人都可以帮助我实现这一目标。

回答:

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

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”,您将拥有原始像素图,其中的圆被切掉,仅边缘在圆外。

以上是 libGDX:如何将纹理裁剪为圆形 的全部内容, 来源链接: utcz.com/qa/404420.html

回到顶部