裁剪图像
public static void main(String[] args) throws Exception { String name = "d:/Auser/2.png"; BufferedImage src = ImageIO.read(new File(name)); //原图大小 int sw = src.getWidth(); int sh = src.getHeight(); //新图大小 int dw = 400; int dh = (int) (sh * (1.0 * dw / sw)); dh = 400; BufferedImage dst = new BufferedImage(dw, dh, 1); //新图画笔 Graphics2D g = dst.createGraphics(); g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_GASP); g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_DEFAULT); //添加背景颜色 // g.setColor(Color.BLUE); // g.fillRect(0, 0, dw, dh); //透明度 // g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, .5f)); // g.drawImage(src, 0, 0, dw, dh, null); //截图位置 int x = 690; int y = 160; //在原图上操作,开始位置0,0从左上角开始,从哪,大小,到那 // g.drawImage(src, 0, 0, dw, dh, 50, 50,dw,dh,null); g.drawImage(src, 0, 0, dw, dh, x, y, x + dw, dh + y, null); g.dispose();//处理器 String n1 = name.substring(0, name.lastIndexOf("."));//从零开始节到最后一个点,不包含点 String n2 = name.substring(name.lastIndexOf("."));//从最后一个点截出来 String nn = n1 + "_ok" + n2; //写,取字符串得jpg +1去点 ImageIO.write(dst, name.substring(name.lastIndexOf(".") + 1), new File(nn)); Runtime run = Runtime.getRuntime();//获取运行时间 run.exec("cmd /k start " + nn); }
缩略图
public static void main(String[] args) throws Exception { String name = "d:/Auser/2.png"; BufferedImage src = ImageIO.read(new File(name)); //原图大小 int sw = src.getWidth(); int sh = src.getHeight(); //新图大小 int dw = 400; int dh = (int) (sh * (1.0 * dw / sw)); //也可以在这里指定大小 //dh = 400;//省略自动算 BufferedImage dst = new BufferedImage(dw, dh, 1); //新图画笔 Graphics2D g = dst.createGraphics(); g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_GASP); g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_DEFAULT); //添加背景颜色 // g.setColor(Color.BLUE); // g.fillRect(0, 0, dw, dh); //透明度 // g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, .5f)); g.drawImage(src, 0, 0, dw, dh, null); String n1 = name.substring(0, name.lastIndexOf("."));//从零开始节到最后一个点,不包含点 String n2 = name.substring(name.lastIndexOf("."));//从最后一个点截出来 //名称添加尺寸 String nn = n1 + String.format("_so(%d_%d)",dw,dh) + n2; //写,取字符串得jpg +1去点 ImageIO.write(dst, name.substring(name.lastIndexOf(".") + 1), new File(nn)); Runtime run = Runtime.getRuntime();//获取运行时间 run.exec("cmd /k start " + nn); }
浙公网安备 33010602011771号