我想将pixelarray保存到Bitmap。 我得到了一切工作,除了:我的应用程序保存位图,但颜色有点不同,因为它们在我的数组中。
这就是我保存颜色数组的方法:
Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565);
bitmap.setPixels(colors, 0, width, 0, 0, width, height);
OutputStream out = null;
File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).getParent(), "new.png");
try {
file.createNewFile();
out = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, out);
out.flush();
out.close();
MediaStore.Images.Media.insertImage(getContentResolver(), file.getAbsolutePath(), file.getName(), file.getName());
} catch (Exception e) {
e.printStackTrace();
}
这就是我如何将颜色设置为数组中的像素:
colors[0] = 0x287026;
出了什么问题?压缩到PNG并将其存储到我的文档中? 因为当我在手机上查看我的文档并检查创建的新PNG时,它有点模糊。 或者这段代码是错误的:Bitmap.Config.RGB_565?我是否需要使用ARGB而不仅仅是RGB?
希望有人能够帮助我! :)
任何帮助表示赞赏!
Joeri
答案 0 :(得分:1)
颜色是编码的整数,它们可以包含alpha通道。我怀疑你的颜色确实包含alpha通道,因此当你的Bitmap格式调用RGB时你正在使用ARGB颜色。将图像格式更改为ARGB_8888,这是默认和推荐的格式。