gpt4 book ai didi

没有透明区域的Android位图保存

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:50:47 25 4
gpt4 key购买 nike

我想保存没有透明区域的位图。

位图有大的透明像素。

所以我想删除它

我该怎么做?

我不会添加图片所以用符号解释。

我不想裁剪功能。我希望使用过滤器

┌──────────────────────────┐

│透明区域

│ ┌──────────┐

│裁剪这个
└──────────┘
└──────────────────────────┘

最佳答案

要找到位图的非透明区域,请在 x 和 y 中遍历位图并找到非透明区域的最小值和最大值。然后根据这些坐标裁剪位图。

Bitmap CropBitmapTransparency(Bitmap sourceBitmap)
{
int minX = sourceBitmap.getWidth();
int minY = sourceBitmap.getHeight();
int maxX = -1;
int maxY = -1;
for(int y = 0; y < sourceBitmap.getHeight(); y++)
{
for(int x = 0; x < sourceBitmap.getWidth(); x++)
{
int alpha = (sourceBitmap.getPixel(x, y) >> 24) & 255;
if(alpha > 0) // pixel is not 100% transparent
{
if(x < minX)
minX = x;
if(x > maxX)
maxX = x;
if(y < minY)
minY = y;
if(y > maxY)
maxY = y;
}
}
}
if((maxX < minX) || (maxY < minY))
return null; // Bitmap is entirely transparent

// crop bitmap to non-transparent area and return:
return Bitmap.createBitmap(sourceBitmap, minX, minY, (maxX - minX) + 1, (maxY - minY) + 1);
}

关于没有透明区域的Android位图保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27753634/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com