java itext图片大小_java – iText:降低图像质量(减少生成的PDF大小)
首先缩放图像,然后使用iText打开缩放图像.
ImageDataFactory中有一个接受AWT图像的create方法.首先使用AWT工具缩放图像,然后像这样打开它:
String imagePath = "C:\\path\\to\\image.jpg";
java.awt.Image awtImage = ImageIO.read(new File(imagePath));
// scale image here
int scaledWidth = awtImage.getWidth(null) / 2;
int scaledHeight = awtImage.getHeight(null) / 2;
BufferedImage scaledAwtImage = new BufferedImage(scaledWidth, scaledHeight, BufferedImage.TYPE_INT_RGB);
Graphics2D g = scaledAwtImage.createGraphics();
g.drawImage(awtImage, 0, 0, scaledWidth, scaledHeight, null);
g.dispose();
/*
Optionally pick a color to replace with transparency.
Any pixels that match this color will be replaced by tansparency.
*/
Color bgColor = Color.WHITE;
Image itextImage = new Image(ImageDataFactory.create(scaledAwtImage, bgColor));
如果在添加到PDF时仍需要原始大小,请再次将其重新缩放.
itextImage.scale(2f, 2f);
注意:此代码未经测试.
编辑回应对赏金的评论
你让我思考和寻找.似乎iText将AWT图像导入为原始图像.我认为它对待它就像BMP一样,它只是writes the pixel data using /FlateDecode,这可能远远不是最佳的.我能想到实现您的要求的唯一方法是使用ImageIO将缩放后的图像写入文件系统或将ByteArrayOutputStream写为jpeg,然后使用生成的文件/字节打开iText.
这是使用字节数组的更新示例.如果你想更多地了解压缩级别等,refer here.
String imagePath = "C:\\path\\to\\image.jpg";
java.awt.Image awtImage = ImageIO.read(new File(imagePath));
// scale image here
int scaledWidth = awtImage.getWidth(null) / 2;
int scaledHeight = awtImage.getHeight(null) / 2;
BufferedImage scaledAwtImage = new BufferedImage(scaledWidth, scaledHeight, BufferedImage.TYPE_INT_RGB);
Graphics2D g = scaledAwtImage.createGraphics();
g.drawImage(awtImage, 0, 0, scaledWidth, scaledHeight, null);
g.dispose();
ByteArrayOutputStream bout = new ByteArrayOutputStream()
ImageIO.write(scaledAwtImage, "jpeg", bout);
byte[] imageBytes = bout.toByteArray();
Image itextImage = new Image(ImageDataFactory.create(imageBytes));
java itext图片大小_java – iText:降低图像质量(减少生成的PDF大小)相关推荐
- java 简单图片浏览器_Java实现简单的图片浏览器
第一次写博客,不喜勿喷. 最近一个小师弟问我怎么用Java做图片浏览器,感觉好久没玩Java了,就自己动手做了一下. 学校的教程是用Swing来做界面的,所以这里也用这个来讲. 首先要做个大概的界面出 ...
- java 背景图片自适应_java 背景图片随窗口大小变化进行自动缩放及平铺 | 学步园...
最近一直被这个问题困扰这,上网也搜了不少这方面的知识,发现很多人都说用reapint方法(很简单的)进行图片重绘就OK了(没源码),于是乎至今也没实现 但通过自己的摸索也确实学到了不少东东滴! 在看代 ...
- java 对图片解码_java对图片的转码和解码 实用
工作中遇到的问题 百度了下 自己整理一下 代码如下: public class Base64 { public static void main(String[] args) { String ...
- java jlabel 字体大小_java – 如何更改所有私有JLabel的字体大小
我见过类似的问题,例如this,但在我的情况下,我有25个私有JLabel,我在声明时给出了一个值.我在构造函数中使用GridBagLayout将这些JLabel添加到JPanel.如果我按照链接中给 ...
- 文档大小超出上传限制怎么办_压缩PDF大小该怎么操作?压缩PDF的软件有哪些?...
压缩PDF大小该怎么操作?工作中使用的任何设备的储存空间都是有限制的,为了能让自己的电脑储存更多的文件,我们可以将多个PDF文件进行压缩再存储.那么我怎么压缩PDF文件呢?下面就小编就来告诉大家压缩P ...
- java itext 图片_在 iText 中剪裁图片
Java 中使用 iText 在创建 PDF 文件的时候,基于各种需求,我们可能需要将图片进行裁剪后,添加到 PDF 中.使用 BufferedImage 等直接对图片进行剪裁然后添加的方式就不说了. ...
- java xml内存泄漏_java - iText HTML到PDF的内存泄漏 - 堆栈内存溢出
对于Maven项目:将以下依赖项添加到项目的pom.xml文件中: org.apache.poi poi-ooxml 3.14 com.itextpdf itextpdf 5.5.8 com.itex ...
- java中图片排版_Java实现第八届蓝桥杯图形排版
标题:图形排版 小明需要在一篇文档中加入 N 张图片,其中第 i 张图片的宽度是 Wi,高度是 Hi. 假设纸张的宽度是 M,小明使用的文档编辑工具会用以下方式对图片进行自动排版: 1. 该工具会按照 ...
- java下载图片压缩包_java压缩文件和下载图片示例
本文实例为大家分享了java压缩文件和下载图片示例,供大家参考,具体内容如下 主页面index.xml 项目的主页 主页主页 湖南长沙 发布方式一...... 页面内容压缩演示--gzip 下载图片 ...
最新文章
- java学习笔记_Java学习笔记——第1篇
- **CI两种方式查询所返回的结果数量
- AD不能复制提示目标主要名称不正确
- 图像识别 43个模型
- jsp mysql在线考试系统源码_jsp+ssm+mysql实现的学生在线考试系统项目源码附带视频导入运行教程...
- 90后一代人还能通过攒钱改变现状吗?
- Win10乱码了怎么解决 Win10系统乱码解决办法
- ettercap dns_spoof
- python学习笔记第三节
- 小米笔记本 镜像_小米笔记本Air 13.3原装WIN10出厂系统ISO镜像1607原版镜像下载
- 【图神经网络】ChebyNet-切比雪夫多项式近似图卷积核
- 张正友标定算法原理详解
- localhost和127.0.0.1的区别
- java代码绘制简单的图形
- 一步步教你搭建Android开发环境(有图有真相)--“自吹自擂:史上最详细、最啰嗦、最新的搭建教程”
- 数据库的行列互换问题
- 转让英孚10个月课程
- 转: 网页设计中的一些色彩搭配技巧
- 如何申请ATT官方解锁iPhone4
- 计算机桌面上的软件是内存上吗,电脑软件运行提示内存不足,占内存小的游戏-...