图像magick java

时间:2011-03-01 04:37:32

标签: java imagemagick

如何通过ImageMagick从java修改图像?有没有办法做到这一点?

5 个答案:

答案 0 :(得分:22)

使用JMagickdocs)。阅读文档。它提供了ImageMagick的所有功能。您还可以查看另一个ImageMagick Java包装器im4java

im4java here

有一个很好的入门文档

这是一个例子,我已经解决了。

/** Typical scaling implementation using JMagick **/
ImageInfo origInfo = new ImageInfo(absPath); //load image info
MagickImage image = new MagickImage(origInfo); //load image
image = image.scaleImage(finalWidth, finalHeight); //to Scale image
image.setFileName(absNewFilePath); //give new location
image.writeImage(origInfo); //save

编辑#1:

如果您想知道JMagick的Jar文件。下载jMagick tarball,解压它。

$ tar xvzf jmagick-linux-6.4.0-Q32.tar.gz 
./jmagick-6.4.0.jar
./jmagick.jar
./libJMagick-6.4.0.so
./libJMagick.so

答案 1 :(得分:9)

如何在Windows上安装JMajick

  1. 转到http://downloads.jmagick.org/6.3.9/(或您选择的任何其他版本)
  2. 下载ImageMagick-6.3.9-0-Q8-windows-dll.exe和jmagick-win-6.3.9-Q8.zip。
  3. 安装exe文件。这将安装ImageMagick,这是JMagick工作的先决条件。
  4. 现在解压缩zip文件。这将提供jmagick.dll和jmagick.jar。
  5. 将jmagick.jar复制到lib文件夹并将其包含在类路径中。
  6. 将jmagick.dll复制到ImageMagic的根安装目录,并将其作为条目添加到PATH环境变量中。
  7. 安装了JMagick:)。

答案 2 :(得分:2)

对于ImageMagic 1.4.0

// create command
ConvertCmd cmd = new ConvertCmd();

// create the operation, add images and operators/options
IMOperation op = new IMOperation();
op.addImage("source_picture.jpg"); // source file
op.resize(800,600);
// of op.resize(800); // and height calculate automatically
op.addImage("resized_picture.jpg"); // destination file file

// execute the operation
cmd.run(op);

如果你喜欢maven!

<dependency>
    <groupId>org.im4java</groupId>
    <artifactId>im4java</artifactId>
    <version>1.4.0</version>
</dependency>

答案 3 :(得分:0)

在J2SE中调整图像大小(使用最简单的方法)。

import java.awt.Graphics;
import java.awt.image.BufferedImage;
import javax.swing.*;
import javax.imageio.ImageIO;
import java.net.URL;

class ResizeImage {

    public static void main(String[] args) throws Exception {
        URL url = new URL("http://pscode.org/media/citymorn2.jpg");
        final BufferedImage bi = ImageIO.read(url);

        Runnable r = new Runnable() {
            public void run() {
                JLabel unresize = new JLabel(new ImageIcon(bi));

                int width = (int)(bi.getWidth()*.75);
                int height = (int)(bi.getHeight()*.75);

                BufferedImage bi1 = new BufferedImage(width, height, 
                    BufferedImage.TYPE_INT_RGB);
                Graphics g1 = bi1.getGraphics();
                g1.drawImage( bi, 0, 0, width, height, null );
                JLabel easyResize = new JLabel(new ImageIcon(bi1));

                JPanel p = new JPanel();
                p.add( unresize );
                p.add( easyResize );

                JOptionPane.showMessageDialog(null, p);
            }
        };
        SwingUtilities.invokeLater(r);
    }
}

答案 4 :(得分:0)

我尝试使用Java中的imagemagick但发现硬件加速了100%的java库用于图像操作。

https://github.com/thebuzzmedia/imgscalr

“该库使用了Java2D团队提倡的高效Java2D扩展技术,该技术在大多数平台上提供硬件加速操作。”