在android中的setpixels之后,图像中的边缘不平滑

在android中的setpixels之后,图像中的边缘不平滑,第1张

概述我正在使用getpixels()和setpixels()api.从Bitmap使用getpixel api获取逐个像素并进行一些修改并设置像素,对循环中的所有像素执行此 *** 作.我可以看到所有像素无法找到原因的相同alpha值. 请提出解决方案. int width, height; height = bmpOriginal.getHeight(); wid 我正在使用getpixels()和setpixels()API.从Bitmap使用getpixel API获取逐个像素并进行一些修改并设置像素,对循环中的所有像素执行此 *** 作.我可以看到所有像素无法找到原因的相同Alpha值.
请提出解决方案.

int wIDth,height;           height = bmpOriginal.getHeight();           wIDth = bmpOriginal.getWIDth();             int[] pix = new int[wIDth * height];            bmpOriginal.getPixels(pix,wIDth,height);            int R,G,B,A;             float[] hsv = new float[3];            float[] hsv2 = new float[3];            float[] hsv3 = new float[3];            for (int y = 0; y < height; y++){            for (int x = 0; x < wIDth; x++)            {                int index = y * wIDth + x;                R = (pix[index] >> 16) & 0xff;     //bitwise shifting                G = (pix[index] >> 8) & 0xff;                B = pix[index] & 0xff;                            color.RGBToHSV(R,hsv);                                   int value = tempBitmap.getPixel(x,y);               color.colorToHSV(value,hsv2);                                           int x = color.HSVTocolor(hsv3);                pix[index] = x;                }            }              bmpOriginal.setPixels(pix,height);
解决方法 在paint对象上使用setAntiAlias(true)API打开反锯齿.
还可以在paint上尝试setFilterBitmap(true).

从位图中创建一个BitmapDrawable.然后,调用mBmpdrawable.setAntiAlias(true);在使用它之前.也可以尝试调用mBmpdrawable.setFilterBitmap(true)

总结

以上是内存溢出为你收集整理的在android中的setpixels之后,图像中的边缘不平滑全部内容,希望文章能够帮你解决在android中的setpixels之后,图像中的边缘不平滑所遇到的程序开发问题。

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

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

原文地址:https://54852.com/web/1126595.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存