收藏 分享(赏)

批量压缩放大图片(java).docx

上传人:fmgc7290 文档编号:4406648 上传时间:2018-12-27 格式:DOCX 页数:7 大小:18.12KB
下载 相关 举报
批量压缩放大图片(java).docx_第1页
第1页 / 共7页
批量压缩放大图片(java).docx_第2页
第2页 / 共7页
批量压缩放大图片(java).docx_第3页
第3页 / 共7页
批量压缩放大图片(java).docx_第4页
第4页 / 共7页
批量压缩放大图片(java).docx_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、package com.tzx.a;import java.awt.BorderLayout;import java.awt.Font;import java.awt.GridLayout;import java.awt.Image;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.awt.image.BufferedImage;import

2、 java.awt.image.RenderedImage;import java.io.File;import java.io.IOException;import javax.imageio.ImageIO;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTextAre

3、a;import javax.swing.JTextField;import javax.swing.UIManager;public class PicPro extends WindowAdapter implements ActionListenerJFrame frame;JPanel panel1,panel3,panel4,panel5;JTextField tf1,tf2,tf3,tf4;JTextArea ta;JLabel label1,label2,label3,label4;JButton button,button1,button2;Font font1=new Fon

4、t(“宋体“,Font.PLAIN,20);Font font2=new Font(“宋体“,Font.PLAIN,16);File filein;File fileout;Filefilelist;File wzw=new File(“wzw“);int width;int height;boolean flag_in; /输入文件夹boolean flag_out; /输出文件夹boolean flag_num; /缩放像素PicPro()frame=new JFrame(“批量图片处理“);frame.setSize(500,600);frame.setLocation(300,100)

5、;frame.setResizable(false);panel1=new JPanel();panel3=new JPanel();panel4=new JPanel();panel5=new JPanel();tf1=new JTextField(30);tf2=new JTextField(30);tf3=new JTextField(7);tf4=new JTextField(7);tf1.setFont(font1);tf2.setFont(font1);tf3.setFont(font1);tf4.setFont(font1);label1=new JLabel(“源文件夹“);l

6、abel2=new JLabel(“目标文件夹 “);label3=new JLabel(“转换后 X:“);label4=new JLabel(“转换后 Y:“);label1.setFont(font2);label2.setFont(font2);label3.setFont(font2);label4.setFont(font2);ta=new JTextArea();ta.setFont(font2);ta.setEditable(false);ta.setLineWrap(true);JScrollPane scroller=new JScrollPane(ta);scroller

7、.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);frame.add(scroller,BorderLayout.CENTER);ta.setText(“请注意各项的填写格式,区分大小写:n“+“源文件夹填写要转换图片集所在文件夹 ,例如D:picture;n“+“目标文件夹填写转换后保存的文件夹 ,例如C:picture;n“+“转换后 X:填写希望转换后图片的宽度( 整数);n“+“转换后 Y:填写希望转换后图片的高度(整数);n“+“当源文件夹中有非图片格式文件或文件夹时,程序会自动选择出图片文件n“+“

8、Change 之前请先 Check,当目标文件夹中重名情况时,程序会给出是否覆盖提示 .n“+“ttt 程序问题发送到 n“);button=new JButton(“Change“);button1=new JButton(“Check“);button2=new JButton(“Check“);button.setFont(font2);button1.setFont(font2);button2.setFont(font2);panel1.setLayout(new GridLayout(3,1);panel1.add(panel3);panel1.add(panel4);panel1

9、.add(panel5);panel3.add(label1);panel3.add(tf1);panel3.add(button1);panel4.add(label2);panel4.add(tf2);panel4.add(button2);panel5.add(label3);panel5.add(tf3);panel5.add(label4);panel5.add(tf4);panel5.add(button);frame.add(panel1,BorderLayout.NORTH);frame.setVisible(true);button.addActionListener(thi

10、s);button1.addActionListener(this);button2.addActionListener(this);frame.addWindowListener(this);/* TODO 对按钮进行监听* */public void actionPerformed(ActionEvent e)if(e.getSource()=button)flag_num=false;if(checkNum(tf3.getText()=trueheight=(int) Double.parseDouble(tf4.getText();flag_num=true;else flag_num

11、=false;ta.append(“XY 填写格式不正确,请重新填写n“);if(flag_in=trueint cnt=0;for(int i=0;ifilelist.length;i+)if(filelisti!=wzw)File outtemp;try RenderedImage im=convert(width,height,ImageIO.read(filelisti);String outputFilename=“副本“+filelisti.getName();String format=outputFilename.substring(outputFilename.lastInd

12、exOf(.)+1);outtemp=new File(fileout+“+outputFilename);/System.out.println(outputFilename);if(outtemp.exists()=true)int restartChoose=JOptionPane.showConfirmDialog(frame,“有相同名称的文件,是否覆盖?“,“提示“,JOptionPane.OK_CANCEL_OPTION);if(restartChoose=JOptionPane.OK_OPTION)ImageIO.write(im,format,outtemp);ta.appe

13、nd(outtemp.getAbsolutePath();ta.append(“tt“+“Finished“+“n“);cnt+;elsereturn;elseImageIO.write(im,format,outtemp);ta.append(outtemp.getAbsolutePath();ta.append(“tt“+“Finished“+“n“);cnt+;catch (IOException e2) e2.printStackTrace(); catch (Exception e1) e1.printStackTrace();ta.append(“目标文件共“+cnt+“个n“);

14、else if(e.getSource()=button1)flag_in=false;filein=new File(tf1.getText();if(filein.exists()=trueflag_in=true;filelist=filein.listFiles();for(int i=0;ifilelist.length;i+)if(filelisti.isFile()=false)filelisti=wzw;String ispic;for(int i=0;ifilelist.length;i+)if(filelisti!=wzw)String temp;temp=filelist

15、i.getName();ispic=temp.substring(temp.lastIndexOf(.)+1);if(ispic.equals(“jpg“)=false)ta.append(“源文件列表:n“);int num=0;for(int i=0;ifilelist.length;i+)if(filelisti!=wzw)ta.append(filelisti+“n“);num+;ta.append(“源文件共“+num+“ 个n“);ta.append(“n“);elseta.append(“n 源文件夹不存在或者输入格式错误!n“);flag_in=false;else if(e.

16、getSource()=button2)flag_out=false;fileout=new File(tf2.getText();if(fileout.exists()=trueflag_out=true;else ta.append(“n 目标文件夹不存在或者输入格式错误!n“);flag_out=false;public void windowClosing(WindowEvent e) System.exit(0);public static void main(String args) throws Exception try UIManager.setLookAndFeel(“co

17、m.sun.java.swing.plaf.windows.WindowsLookAndFeel“); catch(Exception e) new PicPro();/* TODO 图片缩放* */public static BufferedImage convert(int width,int height,BufferedImage input)throws ExceptionBufferedImage output=new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);Image image=input.getScaled

18、Instance(output.getWidth(),output.getHeight(),Image.SCALE_SMOOTH);output.createGraphics().drawImage(image,null,null);return output;/* TODO 判断填写的像素是否是整数* */public static boolean checkNum(String s) /判断 String 是否为可转化为数字的字符串int i;boolean flag=false;char paste_ch=s.toCharArray();for(i=0;is.length();i+)if(paste_chi!=1)break;if(s.contains(“-“)=truebreak;flag=true;return flag;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 网络科技 > Java

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报