作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试根据十六进制值更改位图的颜色。
在我尝试使用我的颜色选择器中选择的颜色为我们 myBitmap.setPixel 之前,我只是想让它像这样与 rgb 一起工作:
for (int x = 0; x <= myBitmap.getWidth(); x++) {
for (int y = 0; x <= myBitmap.getHeight(); y++) {
myBitmap.setPixel(x, y, Color.rgb(255, 255, 255));
}
}
如果我像这样只设置一个像素:
bitmapPreview.setPixel(50, 50, Color.rgb(255, 255, 255));
它工作得很好,但是当我试图循环遍历位图像素时它会强制关闭应用程序
任何关于如何实现这项工作的建议,或关于我如何根据颜色选择器返回的值更改位图颜色的其他建议。从颜色选择器返回的值的格式是这样的:white = -1 or a blue shade = -15658590
谢谢!
最佳答案
如果这正是您使用的代码,那么您的循环条件是错误的。您在两个维度上都超出了位图的限制 1 个像素,并且您使用了错误的变量来检查其中一个维度。更改 <=
至 <
在两个循环中,并更改 x
在第二个条件为 y
:
for (int x = 0; x < myBitmap.getWidth(); x++) {
for (int y = 0; y < myBitmap.getHeight(); y++) {
myBitmap.setPixel(x, y, Color.rgb(255, 255, 255));
}
}
关于android - 循环遍历位图像素以更改android中位图的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20157194/
我是一名优秀的程序员,十分优秀!