当前位置: 代码迷 >> Java Web开发 >> png图片实现旋转有关问题
  详细解决方案

png图片实现旋转有关问题

热度:1365   发布时间:2013-02-25 21:22:28.0
png图片实现旋转问题?
Java code
public int ImageRotate(InputStream image, String dir, String fileName,int theta){        log.info("图片旋转!");        int iRes = 99999;        String suffix = "JPEG";        if(fileName.endsWith(".jpg") || fileName.endsWith(".JPG"))            suffix = "JPEG";        if(fileName.endsWith(".bmp") || fileName.endsWith(".BMP"))            suffix = "BMP";        if(fileName.endsWith(".png") || fileName.endsWith(".PNG"))            suffix = "PNG";        BufferedImage srcImg = null;        BufferedImage newImg = null;        try{            srcImg = javax.imageio.ImageIO.read(image);//            JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder(image); //            srcImg = decoder.decodeAsBufferedImage();            int width = srcImg.getWidth();            int height = srcImg.getHeight();            int x = Math.round(width /2);            int y = Math.round(height/2);            double angdeg = 0;            if(theta==1){               angdeg = 90;                   x = y;            }else{               angdeg = -90;                y = x;            }                        System.out.println(x+" "+y+"  pic type: "+srcImg.getType());            newImg = new BufferedImage(height,width,srcImg.getType());            //旋转            AffineTransform atf = AffineTransform.getScaleInstance(1, 1);            atf.rotate(Math.toRadians(angdeg),x,y);                                      AffineTransformOp atfo = new AffineTransformOp(atf,1);            atfo.filter(srcImg, newImg);            ImageIO.write(newImg,suffix,new File("c:/a.png"));            iRes = 0;        }catch(Exception e){            e.printStackTrace();        }        return iRes ;            }

现在遇到问题是,当传入png图片时,报异常?
希望大家帮忙实现下png图片的旋转,谢先

------解决方案--------------------------------------------------------
用java实现的图片旋转?强
------解决方案--------------------------------------------------------
没做过,帮你顶一下。
------解决方案--------------------------------------------------------
先将像素存入一个二维数组

然后循环重新画(将像素输出到计算后对应的位置)就可以了

  相关解决方案