![](/img/trans.png)
[英]How can I do batch image processing with ImageJ in Java or clojure?
[英]ImageJ how do I write strings on an image?
我需要在圖像上寫一些文本,然后將其居中或放在我想逐步習慣庫的某些段落中,因此我編寫了在教程中找到的以下代碼:
import ij.IJ;
import ij.ImagePlus;
import ij.process.ImageProcessor;
import java.awt.*;
public void prova(String nome) {
ImagePlus image = IJ.openImage(myimagepath);
Font font = new Font("Arial", Font.BOLD, 30);
ImageProcessor ip = image.getProcessor();
ip.setColor(Color.BLACK);
ip.setFont(font);
ip.drawString(nome, 20, 20);
}
我希望路徑上的文件已經被編輯,但事實並非如此,我錯過了什么嗎? 順便說一句,這是一個 .jpg 圖像,當它起作用時,我也必須在這個圖像上放一個較小的圖像,所以希望圖書館也能做到這一點
編輯:伙計們使用 ImageIO,我將工作代碼留作基本
public void prova(String nome, String profilo, MultipartFile foto) {
try {
BufferedImage image = ImageIO.read(new File(path));
Font font = new Font("Arial", Font.BOLD, 18);
Graphics g = image.getGraphics();
g.setFont(font);
g.setColor(Color.GREEN);
g.drawString(nome, 0, 20);
ImageIO.write(image, "jpg", new File(path.substring(0, path.lastIndexOf("\\")+1)+"processedImage.png"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
我不知道 imagej,但在 ImageIO 中,模式將是相似的:
在您的示例中,我看不到您嘗試將圖像保存回磁盤。 由於我自己不使用 ImageJ,我只能建議檢查文檔。 請參閱https://albert.rierol.net/imagej_programming_tutorials.html#How%20to%20integrate%20a%20new%20file%20format%20reader%20and%20writer ,尤其是關於writer的部分。 對於那些不喜歡僅鏈接答案的人,我復制了那里提到的示例代碼:
static public void saveCustom(ImagePlus imp, String path) {
File file = new File(path);
DataOutputStream dos = null;
try {
dos = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(file)));
// read data:
FileInfo fi = imp.getFileInfo();
// HEADER: ... read all header tags and metadata
dos.write( ... );
// BODY: ... read all stack slices (or single slice)
for (int i=1; i<imp.getNSlices(); i++) {
dos.write( ... );
}
dos.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
dos.close();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.