图形学 - Java修改图片尺寸,总是报内存溢出怎么解决?
大家讲道理
大家讲道理 2017-04-18 10:04:01
0
5
566
大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

Antworte allen (5)
黄舟

GraphicsMagick+im4java可以处理,GraphicsMagick不用把整张图片读取到内存中,比你用原生的效率高多了,你可以搜索看看,以前我们就是用GraphicsMagick处理图片裁剪的

    刘奇

    可以试试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));
          迷茫

          思路可以换一换,显然内存中是能存储压缩后的图像的,而大图像应该应该读一部分处理后放到压缩后的图形中,总得来说这个问题不算难,思路换一下就行了

            Neueste Downloads
            Mehr>
            Web-Effekte
            Quellcode der Website
            Website-Materialien
            Frontend-Vorlage
            Über uns Haftungsausschluss Sitemap
            Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!