gpt4 book ai didi

java - Android 旋转位图中的像素,但位图变成白色/丢失

转载 作者:行者123 更新时间:2023-12-01 11:57:14 25 4
gpt4 key购买 nike

我有一个指纹图像作为位图,然后我使用以下代码旋转像素:

public Bitmap rotateImage(Bitmap rotateBmp)
{
double radians=Math.toRadians(90);
double cos, sin;
cos=Math.cos(radians);
sin=Math.sin(radians);
boolean rotatePix[][]=new boolean[width][height];

for(int i=0;i<width;++i)
{
for(int j=0;j<height;++j)
{
int centerX=core.x, centerY=core.y;
int m=i - centerX;
int n=j - centerY;
int k=(int)(m * cos + n * sin);
int l=(int)(n * cos - m * sin);

k+=centerX;
l+=centerY;



if(!((k<0)||(k>width-1)||(k<0)||(k>height-1)))
{
try
{
rotatePix[k][l]=binaryMap[i][j];
}
catch(Exception e)
{
Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_LONG).show();
}
}
}
}

for(int i=0;i<width;++i)
{
for(int j=0;j<height;++j)
{
if(rotatePix[i][j]==true)
{
rotateBmp.setPixel(i, j, Color.BLACK);
}
else
{
rotateBmp.setPixel(i, j, Color.WHITE);
}
}
}

return rotateBmp;
//}
}

但是当我检查结果时,黑色像素变得比以前少了,我猜它变成了白色,因为当我检查 X 和 Y 坐标中的计算时,其中许多具有相同的 X 和 Y 新坐标,也许它将黑色像素更改为白色。请告诉我如何将像素旋转一定角度但颜色与之前相同。我把结果附在这里给你看。非常感谢您的帮助...

Rotate Result

最佳答案

如果您只想旋转位图,您可以使用Matrix,就像我在下面所做的那样:

public Bitmap rotateBitmap (Bitmap rotateBmp) {
int rotationDegree = 90;

/* rotate the image based the rotation degree */
Matrix matrix = new Matrix();
matrix.postRotate(rotationDegree);

rotateBmp = Bitmap.createBitmap(rotateBmp, 0, 0, rotateBmp.getWidth(),
rotateBmp.getHeight(), matrix, true);

// rotateBmp is now rotated by 90 degrees
return rotateBmp;
}

我希望这会有所帮助。

关于java - Android 旋转位图中的像素,但位图变成白色/丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28357941/

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