web-dev-qa-db-ja.com

画像マジックjava

JavaからImageMagickを介してどのように画像を変更できますか?それを行う方法はありますか?

21
rahul the great

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
23
Nishant

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ファイルをインストールします。これにより、JMagickが機能するための前提条件であるImageMagickがインストールされます。
  4. 次にZipファイルを解凍します。これにより、jmagick.dllおよびjmagick.jarが生成されます。
  5. Jmagick.jarをlibフォルダーにコピーし、クラスパスに含めます。
  6. Jmagick.dllをImageMagicのルートインストールディレクトリにコピーし、PATH環境変数のエントリとして追加します。
  7. JMagickがインストールされています:)。
9
Anand

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

そしてあなたがメイベンが好きなら!

<dependency>
    <groupId>org.im4Java</groupId>
    <artifactId>im4Java</artifactId>
    <version>1.4.0</version>
</dependency>
2
user1079877

Javaからimagemagickを使用してみましたが、ハードウェアが100%高速化していることがわかりましたJava画像操作用ライブラリ。

https://github.com/thebuzzmedia/imgscalr

「このライブラリーは、ほとんどのプラットフォームでハードウェア加速操作を提供するJava2Dチームによって提唱された効率的なJava2Dスケーリング技術を利用しています。」

0
mikowiec

J2SE内でのイメージのサイズ変更(easiestメソッドを使用)。

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);
    }
}
0
Andrew Thompson