java常用的几个图片处理工具对Tiff文件的支持

ImageMagick

官网 https://imagemagick.org/, 支持多种格式。命令行工具很适合调试。功能很强大. 还有一款工具GraphicsMagick 是从ImageMagick的基础上研发出来的。

OpenCV

官网 https://opencv.org/ , github地址https://github.com/opencv/opencv,非常活跃的一个开源工具,原来免费的教程,现在已经开始包装成视频,进行收费了,我买了教程,看了下,和以前官网看过的文字版教程没多大差别。github关注已经达到了72.3k。

ImageJ

官网 https://imagej.net/ij/

ImageJ is open source software for processing and analyzing scientific images.

基于ImageJ已经又研发了ImageJ2(目前github关注量1k)和Fiji的产品。

java 复制代码
// Open the TIFF image
ImagePlus imagePlus = new ImagePlus(f);

// Get the image processor
ImageProcessor imageProcessor = imagePlus.getProcessor();

// Add text to the image
int x = 0; // X-coordinate of text
int y = 0; // Y-coordinate of text

String   textToAdd = "These three lines of\ntext will be overlayed on\nthe current image";

Font font = new Font("SansSerif", Font.PLAIN, 56);
imageProcessor.setFont(font);
imageProcessor.setColor(Color.RED);
imageProcessor.drawString(textToAdd, x, y); // Draw the text

// Display the modified image (optional)
//        imagePlus.show();

// Save the modified image
ImagePlus outputImage = new ImagePlus("Modified Image", imageProcessor);
IJ.saveAs(outputImage,"jpeg", f31);
IJ.saveAsTiff(outputImage, f41);
final ImagePlus imagePlus1 = IJ.openImage(f41);
IJ.save(imagePlus1, fpng);

commons-imaging

Apache维护的产品,目前github关注量381

java 复制代码
final File file = new File(f);
final BufferedImage overlay = Imaging.getBufferedImage(file);
// Add text to the image
int x = 0; // X-coordinate of text
int y = 0; // Y-coordinate of text

Font font = new Font("SansSerif", Font.PLAIN, 56);
String   textToAdd = "These three lines of\ntext will be overlayed on\nthe current image";
addTextToImage(overlay, textToAdd, x, y, Color.RED, font);

ImageIO.write(overlay, "JPEG", new File(fa1));
//        ImageIO.write(overlay, "TIFF", new File(fa2));
saveImageWithText(overlay, fa2);
Imaging.writeImage(overlay, Files.newOutputStream(Paths.get(fa4png)), ImageFormats.PNG);
java 复制代码
    // Method to add text to the image
    private static void addTextToImage(BufferedImage image, String text, int x, int y, Color color, Font font) {
        Graphics2D g2d = image.createGraphics();
        g2d.setColor(color);
        g2d.setFont(font);
//        g2d.drawString(text, x, y);
        drawString(g2d, text, x, y);
        g2d.dispose();
    }
   private static void drawString(Graphics g, String text, int x, int y) {
        for (String line : text.split("\n"))
            g.drawString(line, x, y += g.getFontMetrics().getHeight());
    }

//    // Method to save the modified image with text using Common Imaging
    private static void saveImageWithText(BufferedImage image, String outputPath) throws IOException, ImageWriteException {
        // Create a new instance of ImageWriteParam for TIFF format
        final TiffImagingParameters params = new TiffImagingParameters();
        params.setCompression(TiffConstants.TIFF_COMPRESSION_UNCOMPRESSED);

        // Write the BufferedImage with text to a TIFF file
//        Imaging.writeImage(image, new File(outputPath), ImageFormat.IMAGE_FORMAT_TIFF, params);
         new TiffImageParser().writeImage(image, Files.newOutputStream(Paths.get(outputPath)), params);
    }

TwelveMonkeys

目前github关注量1.7k

JDeli 是一个付费软件

如下是测试结果

photoshop可以看到通道增加了专色通道。

ImageMagick opencv imagej commons-imaging TwelveMonkeys JDeli(付费软件)
带有2 个专色通道的tiff图片 不支持 不支持 支持 支持 不支持 支持
将文字写入到图片中 / / 支持 支持
文字写入保存为jpg格式 / / 写入红色的字体变成了黑红 写入红色的字体变成了黑红
文字写入保存为tiff格式 / / 写入红色的字体正常 写入红色的字体正常 写入红色的字体正常
支持Tiff 格式alpha通道 / / 不支持 不支持 不支持 不支持
相关推荐
骄傲的心别枯萎1 小时前
RV1126 NO.40:OPENCV图形计算面积、弧长API讲解
人工智能·opencv·计算机视觉·音视频·rv1126
chao18984412 小时前
多光谱图像融合:IHS、PCA与小波变换的MATLAB实现
图像处理·计算机视觉·matlab
Funny_AI_LAB17 小时前
深度解析Andrej Karpathy访谈:关于AI智能体、AGI、强化学习与大模型的十年远见
人工智能·计算机视觉·ai·agi
滨HI019 小时前
opencv 计算面积、周长
人工智能·opencv·计算机视觉
格林威20 小时前
AOI在风电行业制造领域中的应用
人工智能·数码相机·计算机视觉·视觉检测·制造·机器视觉·aoi
禁默1 天前
第四届图像处理、计算机视觉与机器学习国际学术会议(ICICML 2025)
图像处理·机器学习·计算机视觉
唯道行1 天前
计算机图形学·9 几何学
人工智能·线性代数·计算机视觉·矩阵·几何学·计算机图形学
AndrewHZ1 天前
【图像处理基石】什么是alpha matting?
图像处理·人工智能·计算机视觉·matting·发丝分割·trimap·人像模式
这张生成的图像能检测吗1 天前
(综述)基于深度学习的制造业表面缺陷检测图像合成方法综述
人工智能·计算机视觉·图像生成·工业检测·计算机图像学
AI纪元故事会1 天前
【计算机视觉目标检测算法对比:R-CNN、YOLO与SSD全面解析】
人工智能·算法·目标检测·计算机视觉