需求:获得图片中的白点,然后处理白点成红色。现在要实现的是获得白点,处理成红色不在考虑范围内。
例子:
源码:<%@page import="java.awt.image.*,javax.imageio.ImageIO,java.io.*"%><%
BufferedImage image = ImageIO.read(new File(this.getServletContext().getRealPath(request.getAttribute("path").toString())));
out.println("<script>var xyArr = new Array();</script>");
int width = image.getWidth();    
         width=width*8;
int height = image.getHeight();  
         height=height*8;
int size = width * height; int[] pixels = new int[size];
int foreground_data[][] = new int[width][height]; PixelGrabber pixelgrabber = new PixelGrabber(image, 0, 0, width,
height, pixels, 0, width);
try {
pixelgrabber.grabPixels(); 
} catch (InterruptedException _ex) {
} int numSize = 0; DirectColorModel dcm = (DirectColorModel) ColorModel.getRGBdefault();
out.println("<script>"); for (int h = 0; h < height; h++) {
for (int w = 0; w < width; w++) {
int num = numSize++;
foreground_data[w][h] = pixels[num];  int red = dcm.getRed(pixels[num]);
int green = dcm.getGreen(pixels[num]);
int blue = dcm.getBlue(pixels[num]);
if (red == 255 && green == 255 && blue == 255){
out.println("xyArr.push(\""+(w+","+h)+"\")"); }
}
} out.println("</script>"); out.flush();
%>问题:现在可以点击白点,但是非常不灵敏,想点到白点就有响应,但是现在来看必须点到白点内某个点才有响应,帮忙修改一下使得灵敏度变高,或者提供其他代码。
解决给分

解决方案 »

  1.   

    你能把结果贴出来么..        看你的结果是不是是一个方块..你有的地方不是纯白的. 有灰的那种.. 用你这种不能判断出来..         if (red == 255 && green == 255 && blue == 255)
    改成:
              if (red == 0 && green == 0 && blue == 0)效果会好点. 
      

  2.   

    本来以为是像素点过少的原因,所以
    width=width*8;
    height=height*8;
    本来直接像素点就是图片宽*高了,不要8的。但是改了8后,没什么效果。
      

  3.   

    很明显 把 本来是圆的   换成方的了.       你用我的代码  改出来还是这个样子么?   或者把if (red == 0 && green == 0 && blue == 0)  把这三个控制在一个范围内..
      

  4.   

    if (red == 0 && green == 0 && blue == 0)
    改了这个没有什么效果的。处理成方块是我在另一个jsp文件里用脚本处理的。怎么改都是方块!
    我只是想能够获得更好的灵敏性。flash如何做?关键是不懂。
      

  5.   

    我基本上解决了
    http://www.phpx.com/man/dhtmlcn/colors/colors.html
    这里是颜色表,我找出了里面差不多是白色的颜色,计算出大小,设置成如下
    if ((red<=255&&red>=245)&&(green<=255&&green>=245)&&(blue<=255&&blue>=238))响应加快了很多。