如何在android中正确设置像素到像素图?

时间:2015-09-30 18:23:55

标签: java android colors bitmap pixels

我想将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

1 个答案:

答案 0 :(得分:1)

颜色是编码的整数,它们可以包含alpha通道。我怀疑你的颜色确实包含alpha通道,因此当你的Bitmap格式调用RGB时你正在使用ARGB颜色。将图像格式更改为ARGB_8888,这是默认和推荐的格式。