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

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

répondre à tous(5)
黄舟

GraphicsMagick+im4java peut le gérer. GraphicsMagick n'a pas besoin de lire l'intégralité de l'image dans la mémoire. C'est beaucoup plus efficace que d'utiliser le mode natif. Dans le passé, nous utilisions GraphicsMagick pour traiter le recadrage d'image. 🎜>

刘奇

Vous pouvez l'essayer ImageMagick

伊谢尔伦

Vous pouvez l'essayer, je ne sais pas non plus si cela fonctionnera

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

Vous pouvez changer votre façon de penser. Évidemment, les images compressées peuvent être stockées en mémoire, et les images volumineuses doivent être partiellement lues et traitées avant d'être transformées en graphiques compressés. En général, ce problème n'est pas difficile. ça

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal