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;
}
}