如何通過ImageMagick從java中修改圖像?有沒有辦法做到這一點?Image magick java
回答
使用JMagick(docs)。閱讀文檔。它提供了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
@nishant感謝你的幫助,你可以舉一個例子,其中imagemagick與java一起使用.... – 2011-03-01 05:00:22
@rahul偉大的:你想要一些代碼?最常見的用途是圖像大小調整和水印。 – Nishant 2011-03-01 05:02:37
@nishant yaaa我想調整圖像大小。請發佈它非常感謝你的幫助 – 2011-03-01 05:16:50
調整圖像大小(使用最簡單的法)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);
}
}
現在你會如何將這個調整大小的圖像存儲到磁盤? – 2013-10-29 16:39:24
如何在Windows上安裝JMajick
- 轉到http://downloads.jmagick.org/6.3.9/(或任何其他版本的選擇)
- 下載的ImageMagick-6.3.9-0-Q8-Windows的dll.exe和jmagick-win-6.3.9-Q8.zip。
- 安裝exe文件。這將安裝ImageMagick,這是JMagick工作的先決條件。
- 現在提取zip文件。這會給jmagick.dll和jmagick.jar。
- 將jmagick.jar複製到lib文件夾並將其包含在類路徑中。
- 將jmagick.dll複製到ImageMagic的根安裝目錄,並將其作爲條目添加到PATH環境變量中。
- JMagick安裝:)。
這太好了!我遇到了一個例外(使用Windows 7)「UnsatisfiedLinkError」,直到我保留了'jmagick.dll'在我的JRE_HOME/bin中,並且需要系統重啓以及加載dll。 – tusar 2012-01-03 07:47:26
對於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>
如何模仿'convert my_image.jpg pdf_version.pdf'? – mmcrae 2015-04-02 18:31:26
我不確定。它很久以前就用它了。但我認爲你可以簡單地刪除resize()並將resized_picture.jpg更改爲pdf_version.pdf – user1079877 2015-04-05 12:39:01
我試圖使用ImageMagick從Java卻發現硬件加速100%的Java庫,用於圖像操作。
https://github.com/thebuzzmedia/imgscalr
「此庫由Java2D的團隊,提供在大多數平臺上的硬件加速行動倡導高效的Java2D縮放技術的使用。」
- 1. Image Magick Java支持
- 2. PDF to Image - Magick ++
- 3. Android image magick
- 4. Image magick padding字體
- 5. Image Magick的用法
- 6. image magick php,安裝
- 7. Perl模塊Image :: Magick :: Q16 ::工作中常常缺少Image :: Magick?
- 8. 用Image Magick識別profile-icc
- 9. Image Magick疊加圖像
- 10. Image Magick緩慢繪圖
- 11. Image Magick:網站圖像優化
- 12. Image Magick致命錯誤無法解釋
- 13. 如何在Debian etch上安裝Image :: Magick?
- 14. 從.Net調用Image Magick命令
- 15. 如何使用IO :: Scalar和Image :: Magick :: Read()?
- 16. PHP GD或Imagick class Image Magick Conversion
- 17. Image magick convert忽略一些圖像
- 18. Perl - Image :: Magick RGB背景的新圖像
- 19. image magick:對齊區域中的文本
- 20. 如何將Image :: Magick包裝到PAR(perl)?
- 21. Image magick/PHP正在摔倒大圖像
- 22. Image Magick將文件寫入文件夾
- 23. WhiteThresholdImage magick
- 24. Perl Image :: Magick獲取內存中的內容
- 25. 圖像壓縮使用Image Magick mogrify問題
- 26. Image Magick 6.2.4是否始終向後兼容舊版本?
- 27. 如何調整圖像大小以適應Image :: Magick區域?
- 28. 從Magick創建一個紅寶石文件對象:: Image
- 29. Image magick:在linux服務器上花費太多時間
- 30. Image Magick問題獲取顏色配置文件
請在問題中添加問號(?)。請在每個句子的開頭使用大寫字母。這段文字在所有小寫字母中閱讀都很痛苦。通過'修改'可以更具體地說明你的意思。至於調整大小(甚至結束加水印),可以使用Java 2D(在J2SE中)完成 - 無需第三方API。唯一需要注意的是J2SE提供的圖像文件類型範圍有限。 (如果你想處理像TIFF這樣的圖像類型,我會推薦JAI。) – 2011-03-01 06:26:59
@Andrew Thompson:完成。是的,你可以使用JAI。我已經使用了ImageMagick和JAI。我爲什麼要避免JAI,主要有兩個問題。 (1)圖像質量嚴重下降,特別是在重度縮小的情況下。有很多參數需要了解才能獲得正確的質量。 (2)使用起來不容易。 – Nishant 2011-03-01 07:10:03