等比例改变图片大小
import java.awt.image.BufferedImage; import java.io.BufferedOutputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileOutputStream; import javax.imageio.ImageIO; public class ChangeImageSize { public static void main(String[] args) { /*String aa="{aa:{'name':'123'}}"; JSONObject jSONObject = JSONObject.fromObject(aa); System.out.println(JSONObject.fromObject(jSONObject.get("aa")).get("name")); String a = "20170110200001"; String b = "20170110200000"; System.out.println(a.compareTo(b));// a>b => -1 0 1 */ try { scaleImage("C:/log/1.jpg", "C:/log/2.jpg", 500, 500); System.out.println("yes"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static String scaleImage(String inpath,String outpath, int width, int height) throws Exception { BufferedImage buffered_oldImage = ImageIO.read(new File(inpath)); int imageOldWidth = buffered_oldImage.getWidth(); int imageOldHeight = buffered_oldImage.getHeight(); double scale_x = (double) width / imageOldWidth; double scale_y = (double) height / imageOldHeight; double scale_xy = Math.min(scale_x, scale_y); int imageNewWidth = (int) (imageOldWidth * scale_xy); int imageNewHeight = (int) (imageOldHeight * scale_xy); BufferedImage buffered_newImage = new BufferedImage(imageNewWidth, imageNewHeight, BufferedImage.TYPE_INT_RGB); buffered_newImage.getGraphics().drawImage(buffered_oldImage.getScaledInstance(imageNewWidth, imageNewHeight, BufferedImage.SCALE_SMOOTH), 0, 0, null); buffered_newImage.getGraphics().dispose(); ByteArrayOutputStream outPutStream = new ByteArrayOutputStream(); ImageIO.write(buffered_newImage, "jpeg", outPutStream); BufferedOutputStream bufferOutput = null; File ff = new File(outpath); if(ff.exists()){ ff.delete(); } bufferOutput = new BufferedOutputStream(new FileOutputStream(ff), 2048); bufferOutput.write(outPutStream.toByteArray()); bufferOutput.flush(); if (bufferOutput != null) { try { bufferOutput.close(); } catch (Exception e) { throw new RuntimeException(e); } } return outpath; } }