public static BufferedImage cutoutByPixel(Object srcIm, int x, int y, int range) {
    """
	指定的像素点为背景色参考，在指定范围内的颜色将设置为透明。
	
	</br>
	！！！ 该方法适合背景与前景相差特别大的图片，最好是背景颜色基本一致，前景背景有明显分隔界限。
	
	
	@param srcIm
	源图片
	@param x
	采样像素点横坐标
	@param y
	采样像素点纵坐标
	@param range
	采样像素可允许色差范围，数值越大去掉的颜色范围越多
	@return 抠图后图片对象
    """
        BufferedImage srcImage = read(srcIm);
        BufferedImage resultImage = new BufferedImage(srcImage.getWidth(),
                                                      srcImage.getHeight(),
                                                      BufferedImage.TYPE_4BYTE_ABGR);
        // 获取选样点
        int[] srgb = Colors.getRGB(srcImage.getRGB(x, y));

        // 开始绘制
        for (int i = 0; i < srcImage.getWidth(); i++) {
            for (int j = 0; j < srcImage.getHeight(); j++) {
                int pixel = srcImage.getRGB(i, j);
                int[] crgb = Colors.getRGB(pixel);
                int alpha = 255;
                // 范围内的都干掉
                if (inRangeColor(srgb, crgb, range)) {
                    alpha = 0;
                }
                // 范围大一点点的，可能就需要半透明来处理了
                else if (inRangeColor(srgb, crgb, (int) (range * 1.5))) {
                    alpha = 64;
                }
                // 范围大一点点的，可能就需要半透明来处理了
                else if (inRangeColor(srgb, crgb, range * 2)) {
                    alpha = 128;
                }
                // 不在范围的原样输出吧
                else {
                    alpha = Colors.getAlpha(pixel);
                }
                pixel = (alpha << 24) & 0xff000000 | (pixel & 0x00ffffff);
                resultImage.setRGB(i, j, pixel);
            }
        }

        return resultImage;
    }
public static BufferedImage cutoutByPixel(Object srcIm, int x, int y, int range) {
        BufferedImage srcImage = read(srcIm);
        BufferedImage resultImage = new BufferedImage(srcImage.getWidth(),
                                                      srcImage.getHeight(),
                                                      BufferedImage.TYPE_4BYTE_ABGR);
        // 获取选样点
        int[] srgb = Colors.getRGB(srcImage.getRGB(x, y));

        // 开始绘制
        for (int i = 0; i < srcImage.getWidth(); i++) {
            for (int j = 0; j < srcImage.getHeight(); j++) {
                int pixel = srcImage.getRGB(i, j);
                int[] crgb = Colors.getRGB(pixel);
                int alpha = 255;
                // 范围内的都干掉
                if (inRangeColor(srgb, crgb, range)) {
                    alpha = 0;
                }
                // 范围大一点点的，可能就需要半透明来处理了
                else if (inRangeColor(srgb, crgb, (int) (range * 1.5))) {
                    alpha = 64;
                }
                // 范围大一点点的，可能就需要半透明来处理了
                else if (inRangeColor(srgb, crgb, range * 2)) {
                    alpha = 128;
                }
                // 不在范围的原样输出吧
                else {
                    alpha = Colors.getAlpha(pixel);
                }
                pixel = (alpha << 24) & 0xff000000 | (pixel & 0x00ffffff);
                resultImage.setRGB(i, j, pixel);
            }
        }

        return resultImage;
    }
public static BufferedImage cutoutByPixel ( Object srcIm , int x , int y , int range ) { BufferedImage srcImage = read ( srcIm ) ; BufferedImage resultImage = new BufferedImage ( srcImage . getWidth ( ) , srcImage . getHeight ( ) , BufferedImage . TYPE_4BYTE_ABGR ) ; // 获取选样点 int [ ] srgb = Colors . getRGB ( srcImage . getRGB ( x , y ) ) ; // 开始绘制 for ( int i = 0 ; i < srcImage . getWidth ( ) ; i ++ ) { for ( int j = 0 ; j < srcImage . getHeight ( ) ; j ++ ) { int pixel = srcImage . getRGB ( i , j ) ; int [ ] crgb = Colors . getRGB ( pixel ) ; int alpha = 255 ; // 范围内的都干掉 if ( inRangeColor ( srgb , crgb , range ) ) { alpha = 0 ; } // 范围大一点点的，可能就需要半透明来处理了 else if ( inRangeColor ( srgb , crgb , ( int ) ( range * 1.5 ) ) ) { alpha = 64 ; } // 范围大一点点的，可能就需要半透明来处理了 else if ( inRangeColor ( srgb , crgb , range * 2 ) ) { alpha = 128 ; } // 不在范围的原样输出吧 else { alpha = Colors . getAlpha ( pixel ) ; } pixel = ( alpha << 24 ) & 0xff000000 | ( pixel & 0x00ffffff ) ; resultImage . setRGB ( i , j , pixel ) ; } } return resultImage ; }
指定的像素点为背景色参考，在指定范围内的颜色将设置为透明。

</br>
！！！ 该方法适合背景与前景相差特别大的图片，最好是背景颜色基本一致，前景背景有明显分隔界限。


@param srcIm
源图片
@param x
采样像素点横坐标
@param y
采样像素点纵坐标
@param range
采样像素可允许色差范围，数值越大去掉的颜色范围越多
@return 抠图后图片对象
指定的像素点为背景色参考，在指定范围内的颜色将设置为透明。