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

pav*_*van 5 android image bitmap

我正在使用getpixels()和setpixels()api。使用getpixel api从Bitmap中获取一个像素并进行一些修改和设置像素,然后对循环中的所有像素执行此操作。对于所有无法找到原因的像素,我可以看到相同的alpha值。请提出解决方案。 请找到所附图片以查看问题

                   int width, height;
           height = bmpOriginal.getHeight();
           width = bmpOriginal.getWidth(); 

            int[] pix = new int[width * height];
            bmpOriginal.getPixels(pix, 0, width, 0, 0, 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, G, B, hsv);                   

                int value = tempBitmap.getPixel(x, y);


               Color.colorToHSV(value, hsv2);                           

                int x = Color.HSVToColor(hsv3);
                pix[index] = x;


                }

            }  

            bmpOriginal.setPixels(pix, 0, width, 0, 0, width, height);
Run Code Online (Sandbox Code Playgroud)

Ron*_*nie 2

在您的绘画对象上使用setAntiAlias(true)api 来打开抗锯齿功能。也尝试setFilterBitmap(true)一下油漆。

用你的位图制作一个BitmapDrawable。然后,mBmpdrawable.setAntiAlias(true);在使用前致电。也可以尝试打电话mBmpdrawable.setFilterBitmap(true)