当前位置: 首页 > news >正文

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的产品。


// 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 textString   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

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 textFont 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);
// Method to add text to the imageprivate 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 Imagingprivate static void saveImageWithText(BufferedImage image, String outputPath) throws IOException, ImageWriteException {// Create a new instance of ImageWriteParam for TIFF formatfinal 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可以看到通道增加了专色通道。
在这里插入图片描述

ImageMagickopencvimagejcommons-imagingTwelveMonkeysJDeli(付费软件)
带有2个专色通道的tiff图片不支持不支持支持支持不支持支持
将文字写入到图片中//支持支持
文字写入保存为jpg格式//写入红色的字体变成了黑红写入红色的字体变成了黑红
文字写入保存为tiff格式//写入红色的字体正常写入红色的字体正常写入红色的字体正常
支持Tiff格式alpha通道//不支持不支持不支持不支持
http://www.lryc.cn/news/234443.html

相关文章:

  • SQL必知会(二)-SQL查询篇(11)-联结表
  • 多模态大一统:开启全模态LLM和通用AI时代的大门
  • Alibaba Nacos注册中心实战
  • 京东数据采集与挖掘(京东大数据):2023年10月京东冰箱品牌销售排行榜
  • 某事业单位转型二类后绩效项目成功案例纪实
  • MySQL 和 SQL Server之间的数据迁移方法
  • 单元测试实战(五)普通类的测试
  • js 迭代器iterator 和 生成器Generator 10
  • 100套Axure RP大数据可视化大屏模板及通用组件库
  • 【OpenGauss源码学习 —— 执行算子(Append算子)】
  • Java(一)(引用类型的参数在传递,方法重载,面向对象编程基础)
  • Vue第1天:特性概览
  • C++语法基础知识面经汇总
  • AM@幂级数性质@幂级数和函数求解
  • PHP低版本安全问题
  • 结构体——C语言初阶
  • 基于django电影推荐系统
  • 【问题处理】WPS提示不能启动此对象的源应用程序如何处理?
  • UE 程序化网格 计算横截面
  • 【Spring】IoC容器的一些总结与补充
  • Java GUI实现五子棋游戏
  • Python 集成 Nacos 配置中心
  • Debian 11 更新 Node.js 版本
  • python 对图像进行聚类分析
  • 程序员导航站
  • BIO、NIO、AIO三者的区别及其应用场景(结合生活例子,简单易懂)
  • 深度学习YOLO图像视频足球和人体检测 - python opencv 计算机竞赛
  • 系列七、JVM的内存结构【堆(Heap)】
  • 什么是Selenium?如何使用Selenium进行自动化测试?
  • 【蓝桥杯 第十五届模拟赛 Java B组】训练题(A - I)