java实现图片旋转90度的问题
怎么用java写一个图片旋转90、180、270、360度的函数,并将旋转后的图片用JLabel显示来,求各位路过的大神指点,以下是我之前写的代码,无论怎么修改都有问题,...
怎么用java写一个图片旋转90、180、270、360度的函数,并将旋转后的图片用JLabel显示来,求各位路过的大神指点,以下是我之前写的代码,无论怎么修改都有问题,图片旋转90度后只显示部分,具体请看图:第一张是旋转前:
第二张是旋转90度后:
麻烦大神帮忙解决,已经被这个问题纠结了几天时间了,一直修改不出来,今晚就要交了radius += Math.PI / 2; try{File f = new File(fpath+imagename);//根据路径和文件名创建文件对象; Image image = ImageIO.read(f) ImageIcon ico = null; AffineTransform trans = null; trans = new AffineTransform(); x = image.getWidth(null); y = image.getHeight(null); trans.rotate(radius,x/2 , y/2); BufferedImage buffer1 = new BufferedImage(x,y,BufferedImage.TYPE_INT_RGB); Graphics2D g2 = buffer1.createGraphics(); g2.setTransform(trans); ico = new ImageIcon(buffer1); g2.drawImage(image,null,null); limage.setIcon(ico);//传入Label }catch(Exception e) { e.printStackTrace(); } 展开
第二张是旋转90度后:
麻烦大神帮忙解决,已经被这个问题纠结了几天时间了,一直修改不出来,今晚就要交了radius += Math.PI / 2; try{File f = new File(fpath+imagename);//根据路径和文件名创建文件对象; Image image = ImageIO.read(f) ImageIcon ico = null; AffineTransform trans = null; trans = new AffineTransform(); x = image.getWidth(null); y = image.getHeight(null); trans.rotate(radius,x/2 , y/2); BufferedImage buffer1 = new BufferedImage(x,y,BufferedImage.TYPE_INT_RGB); Graphics2D g2 = buffer1.createGraphics(); g2.setTransform(trans); ico = new ImageIcon(buffer1); g2.drawImage(image,null,null); limage.setIcon(ico);//传入Label }catch(Exception e) { e.printStackTrace(); } 展开
展开全部
类Graphics2D的方法rotate(double theta, double x,
double y)可以用来旋转图片
double y)可以用来旋转图片
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
buffer1的宽高要根据旋转的角度定的,180度时宽高保持不变,90或270度时宽高要互调一下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
旋转之后的图片长宽和原图是相反的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
翻转后 orientation 属性为6 。
public static void main(String[] args) throws ImageProcessingException, IOException {
File jpegFile= new File("C:\\Users\\Administrator\\Desktop\\IMG_0362.JPG");
Metadata metadata = ImageMetadataReader.readMetadata(jpegFile);
Directory directory = metadata.getDirectory(ExifIFD0Directory.class);
JpegDirectory jpegDirectory = (JpegDirectory)metadata.getDirectory(JpegDirectory.class);
// int orientation =0;
public static void main(String[] args) throws ImageProcessingException, IOException {
File jpegFile= new File("C:\\Users\\Administrator\\Desktop\\IMG_0362.JPG");
Metadata metadata = ImageMetadataReader.readMetadata(jpegFile);
Directory directory = metadata.getDirectory(ExifIFD0Directory.class);
JpegDirectory jpegDirectory = (JpegDirectory)metadata.getDirectory(JpegDirectory.class);
// int orientation =0;
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我去,怎么又是这个问题,网上那么多方法,这个不行就换一个咯,汗汗汗!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询