84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
光阴似箭催人老,日月如移越少年。
GraphicsMagick+im4java可以处理,GraphicsMagick不用把整张图片读取到内存中,比你用原生的效率高多了,你可以搜索看看,以前我们就是用GraphicsMagick处理图片裁剪的
可以试试 ImageMagick
ImageMagick
你可以试一下,我也不确定行不行
int w = 400; int h = 300; BufferedImage oldImg = ImageIO.read(new File("F:\\sample.jpg")); Image t = oldImg.getScaledInstance(w, h, Image.SCALE_FAST); BufferedImage newImg = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB); Graphics2D g = newImg.createGraphics(); g.drawImage(t, 0, 0, w, h, null); g.dispose(); ImageIO.write(newImg, "jpg", new File("F:\\small.jpg"));
File srcFile = new File(srcImgPath); Image srcImg = ImageIO.read(srcFile); BufferedImage buffImg = null; buffImg = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); buffImg.getGraphics().drawImage( srcImg.getScaledInstance(width, height, Image.SCALE_SMOOTH), 0, 0, null); ImageIO.write(buffImg, "JPEG", new File(distImgPath));
思路可以换一换,显然内存中是能存储压缩后的图像的,而大图像应该应该读一部分处理后放到压缩后的图形中,总得来说这个问题不算难,思路换一下就行了
GraphicsMagick+im4java可以处理,GraphicsMagick不用把整张图片读取到内存中,比你用原生的效率高多了,你可以搜索看看,以前我们就是用GraphicsMagick处理图片裁剪的
可以试试
ImageMagick
你可以试一下,我也不确定行不行
思路可以换一换,显然内存中是能存储压缩后的图像的,而大图像应该应该读一部分处理后放到压缩后的图形中,总得来说这个问题不算难,思路换一下就行了