code: 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;
      }
docs: 指定的像素点为背景色参考，在指定范围内的颜色将设置为透明。
  
  </br>
  ！！！ 该方法适合背景与前景相差特别大的图片，最好是背景颜色基本一致，前景背景有明显分隔界限。
  
  
  @param srcIm
  源图片
  @param x
  采样像素点横坐标
  @param y
  采样像素点纵坐标
  @param range
  采样像素可允许色差范围，数值越大去掉的颜色范围越多
  @return 抠图后图片对象