android中的灰度位图

android中的灰度位图,第1张

概述我有一个字节数组,对应一个“灰度位图”(一个字节–>一个像素),我需要为这个图像创建一个PNG文件.下面的方法有效,但是创建的png是巨大的,因为我使用的位图是ARGB_8888位图,每个像素占用4个字节而不是1个字节.我无法使其与其他Bitmap.Config不同,而不是ARGB_8888.也许ALPHA_8是

我有一个字节数组,对应一个“灰度位图”(一个字节 – >一个像素),我需要为这个图像创建一个PNG文件.

下面的方法有效,但是创建的png是巨大的,因为我使用的位图是ARGB_8888位图,每个像素占用4个字节而不是1个字节.

我无法使其与其他Bitmap.Config不同,而不是ARGB_8888.也许Alpha_8是我需要的,但我无法让它发挥作用.

我也尝试了一些其他帖子(Convert a Bitmap to GrayScale in Android)中包含的toGrayScale方法,但我的大小也有同样的问题.

public static boolean createPNGFromGrayScaledBytes(ByteBuffer grayBytes, int wIDth,        int height,file pngfile) throws IOException{    if (grayBytes.remaining()!=wIDth*height){        Logger.error(Tag, "Unexpected error: size mismatch [remaining:"+grayBytes.remaining()+"][wIDth:"+wIDth+"][height:"+height+"]", null);        return false;    }    Bitmap bitmap = Bitmap.createBitmap(wIDth, height, Bitmap.Config.ARGB_8888);    // for each byte, I set it in three color channels.    int gray,color;    int x=0,y=0;            while(grayBytes.remaining()>0){        gray = grayBytes.get();        // integer may be negative as byte is signed. make them positive.         if (gray<0){gray+=256;}        // for each byte, I set it in three color channels.        color= color.argb(-1, gray, gray, gray);        bitmap.setPixel(x, y, color);        x++;        if (x==wIDth){            x=0;            y++;        }               }    fileOutputStream fos=null;    fos = new fileOutputStream(pngfile);    boolean result= bitmap.compress(Bitmap.CompressFormat.PNG,100,fos);    fos.close();    return result;}       

编辑:链接到生成的文件(它可能看起来很废话,但只是用randon数据创建).
http://www.tempfiles.net/download/201208/256402/huge_png.html

任何帮助将不胜感激.

解决方法:

正如您所注意到的那样,将灰度图像保存为RGB非常昂贵.如果你有亮度数据,那么最好保存为灰度PNG而不是RGB PNG.

AndroID Framework中提供的位图和图像功能非常适合读取和编写框架和UI组件支持的图像格式.此处不包括灰度PNG.

如果你想在AndroID上保存一个Grayscale PNG,那么你需要使用像http://code.google.com/p/pngj/这样的库

总结

以上是内存溢出为你收集整理的android中的灰度位图全部内容,希望文章能够帮你解决android中的灰度位图所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1109931.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存