入门到精通:Java pdf下载优化:Java图片压缩

优采云 发布时间: 2022-10-20 08:13

  入门到精通:Java pdf下载优化:Java图片压缩

  在文章之前,我在项目中写过关于pdf下载的要求(详见文章)。在开发、测试和验收过程中没有任何问题。前段时间,业务方说下载pdf的功能老是报错。超时报错,查了原因,原来pdf里的图片都是8M左右的,肯定受不了。如果发现问题,就会得到解决。有两个想法:

  压缩图片异步下载 1. 压缩图片

  此处使用 Google 的开源图像压缩库缩略图。该工具简单易用,支持多种压缩方式,提供链式API。如果你有兴趣,你可以研究一下。

  项目引入依赖:

  

net.coobird

thumbnailator

0.4.8

  在pfd渲染之前,先对得到的图片进行压缩,伪代码如下(详见源码):

  Lists.partition(imageUrls, BULK_SIZE).forEach(items -> {

FraudReportOrderEvidenceImage image = new FraudReportOrderEvidenceImage();

for (int i = 0; i < items.size(); i++) {

byte[] imageBytes = restTemplate.getForObject(items.get(i), byte[].class);

ByteArrayInputStream bais = new ByteArrayInputStream(imageBytes);

ByteArrayOutputStream baos = new ByteArrayOutputStream(BAOS_SIZE);

<p>

try {

//压缩图片

Thumbnails.of(bais).scale(IMAGE_SCALE_SIZE).toOutputStream(baos);

byte[] thumbnailBytes = baos.toByteArray();

if (i == 0) {

image.setReportDescImage(this.byte2String(thumbnailBytes));

continue;

}

if (i == 1) {

image.setReportDescImage2(this.byte2String(thumbnailBytes));

continue;

}

if (i == 2) {

image.setReportDescImage3(this.byte2String(thumbnailBytes));

continue;

}

if (i == 3) {

  

image.setReportDescImage4(this.byte2String(thumbnailBytes));

}

} catch (Exception e) {

log.error("压缩图片失败", e);

throw new ServiceResponseException("压缩图片失败");

}

}

images.add(image);

});

log.info("read {} images byte costs: {}ms", imageUrls.size(), System.currentTimeMillis() - start);</p>

  经过thumbnailator压缩后,图像字节大大减少,图像不失真或模糊。点击页面下载按钮,实时下载正常,不再超时。

  2.异步下载

  实际上,下载文件一般是系统中的一个非核心进程,所以大部分系统都采用异步下载的方式。所谓异步下载,是指系统将数据实时渲染到前端供用户下载。在业务低峰时段(如凌晨2:00),定时通过job获取指定数据,生成对应文件,然后上传到文件服务器或OSS服务器。上传成功后,文件资源的地址会保留在系统库表中。下载页面会将对应记录对应的文件地址返回给前端。用户下载时,前端可以通过地址url直接下载指定文件。这样,下载处理就会从业务系统中剥离出来,并且不会由大文件引起。耗时处理影响业务系统性能。一般批处理系统、数据仓库、BI等都是这样生成文件供客户下载的。需要注意的是,这种方式,数据一般是T+1,但由于是非核心功能,T+1完全没问题。

  ps:

  每张图片8M左右,压缩后可以正常下载

  图片合理压缩后的pdf效果

  推荐文章:关键词排名批量查询-批量关键词排名网站收录网站域名查询工具

  关键词排名批量查询,什么是关键词排名批量查询,就是查询网站的所有关键词排名。今天给大家分享一个免费的批量关键词排名查询工具,只需导入域名查询工具自动抓取你网站的所有关键词进行排名查询,支持文章自动更新、自动文章伪原创、自动搜索引擎推送收录排名、批量关键词排名查询(参考图1、图2、图3、图4详情)

  网站SEO优化工作在不同时期有不同的要求。三年来,数以万计的小企业纷纷退出该行业。敏感人士曾推测,搜索引擎业务已经呈现出巨大的变化。就在去年,世界科技巨头宣布成功完成量子霸权,人造大脑越来越近,这给搜索领域带来了不小的压力。

  一、算法智能化

  网站Seo 优化过去一直使用机械方法。由于搜索引擎没有情感,无法区分文章的属性和上下文的相关性,所以购买优化内容便宜,可以批量优化。以后这种工作越来越难维持了,不厉害的文章也很难成为收录,这是肯定的。

  二、关键词堆叠

  

  为了突出我要优化的关键词,我经常在文章中使用大量的堆叠方式,影响了文字的可读性。这在上一期好像没什么问题,反而会占一小部分。物美价廉,未来人工智能可以轻松识别,优化难度将成倍增加。堆叠越多,重量越轻。

  三、收费在增长

  过去,首页排名的价格非常便宜。通常,优化公司需要雇佣更多的专业人士,对*敏*感*词*的要求也越来越高,尤其是懂算法和人工智能的专业人士。月薪几万元起,所以未来排名的价格可能会比现在高出好几倍。

  四、行业的离去与留存

  不管会出现什么样的行业变化,只要人类使用搜索引擎查找信息的习惯没有改变,网站的优化还会继续,但对从业者的要求和价格门槛却在不断改善。大多数从业者在未来可能会面临职业生涯的转变。

  网站今天seo的优化已经走过了第三个10年。未来10年,行业将被颠覆。只有早准备,才能早计划,招到更多的高级人才,提供更好的服务,建设更多的优质服务器,只有有了这些软硬件基础,才能站稳脚跟。近三年来,搜索引擎优化难度越来越大,从业者应该都有体会。

  

  中文分词是一个专业术语,是SEO优化中最常用的。所有的搜索都是由关键词完成的,而关键词有时会有歧义或多重解释,此时会出现分词。过去一段时间,中文分词对SEO优化有很大的帮助,在SEO优化中使用分词还是很重要的,但是随着搜索引擎技术的进步,分词可能达不到预期的效果.

  顾名思义,“分词”就是分词、划分的意思。关键词 以不同的方式分隔后,含义可能完全不同。

  举个经典的例子:鞋子和衣服,这个关键词可以一一拆分:鞋子,和服,衣服,所以搜索引擎在判断一个关键词的时候会停止对应的拆分,识别用户想要什么.

  按照前面的解释,中文分词是基于关键词的组合来停止分裂。当用户搜索某个关键词时,搜索引擎首先返回用户搜索到的整个关键词,然后再返回拆分后的关键词结果。

  基于这个结论,我们可以在关键词优化过程中对某些词进行适当的组合,例如:北京办公室装修设计,拆分后,北京办公室装修,办公室设计,北京办公室设计,北京办公室设计,等等。当用户搜索这个火剪关键词时,我们的网站也很有可能被搜索到。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线