通过文件流的形式读取图片时如何设定他的像素
ImageInputStream iis = null ; 
InputStream is = new ByteArrayInputStream(bytes);
iis = ImageIO.createImageInputStream(is); 
如果这张图片原始像素为1024x768;那我想给一个240X180的新像素给他
请问该如何操作。

解决方案 »

  1.   

    将iis转换为BufferedImage对象然后进行如下操作
    /**
     * 改变图片大小
     * 
     * @param img
     * @param weight
     * @param height
     * @return
     */
    public BufferedImage modifySize(BufferedImage img, int width, int height) {
    try {
    int w = img.getWidth();
    int h = img.getHeight(); double wRation = (new Integer(width)).doubleValue() / w;
    double hRation = (new Integer(height)).doubleValue() / h;
    Image image = img.getScaledInstance(width, height,
    Image.SCALE_SMOOTH); AffineTransformOp op = new AffineTransformOp(AffineTransform
    .getScaleInstance(wRation, hRation), null); image = op.filter(img, null); img = (BufferedImage) image;
    } catch (Exception e) {
    e.printStackTrace();
    } return img;
    }然后再将返回的img按照你刚才的方法来存入数据库就OK了……