Imagemagick 使用
最近做了个在线预览的需求
步骤 office->pdf->jpg
工具 : office 转 pdf https://github.com/gotenberg/gotenberg
pdf 转 jpg https://imagemagick.org/
office转pdf直接启动一个docker容器去转换,通过channel控制并发数量,并发数量太多会导致内存不够,转换失败
docker run --rm -p 3000:3000 gotenberg/gotenberg:7
pdf转jpg直接 通过go执行cmd方式转换
convert -density 100 -quality 100 -background white -alpha remove "./test.pdf" ./test/test.jpg
density 图片密度(数值越大,需要内存越高,图片效果越好) quality(0-100)图片质量
为了提升图片转换效率,先获取pdf总页数,然后通过go channel 控制并发数量,一页一页转换
func getPdfPages(filePath string) (int, error) {if out, err := exec.Command("identify", filePath).Output(); err != nil {return 0, err} else {slice := strings.Split(strings.TrimSpace(string(out)), "\n")return len(slice), nil} }
convertPageLimitChan := make(chan struct{}, 15) defer close(convertPageLimitChan) var eg errgroup.Group for i := 0; i < pages; i++ {convertPageLimitChan <- struct{}{}page := ieg.Go(func() error {defer func() {<-convertPageLimitChan}()cmd := exec.Command("convert", "-density", "100", "-quality", "100", "-background", "white", "-alpha", "remove", fmt.Sprintf("%s[%d]", filePath, page), fmt.Sprintf("/tmp/%s/%s-%d.jpg", fileName, fileName, page))logger.Info(cmd.Args)cr := cmd.Run()return cr}) } if er := eg.Wait(); er != nil {logger.Error("convert err: ", er)return }
Imagemagick 使用相关推荐
- 在vc6控制台程序中如何调用运行ImageMagick命令行工具
在http://www.imagemagick.org/script/index.php网站下载相应的执行文件,这里以下载ImageMagick-6.6.5-10-Q16-windows-static ...
- 如何运行ImageMagick的命令行工具
在http://www.imagemagick.org/script/index.php网站下载相应的执行文件,这里以下载ImageMagick-6.6.5-10-Q16-windows-static ...
- php ImageMagick扩展
linux下安装php ImageMagick扩展模块 下载ImageMagick源码包: #wget ftp://ftp.u-aizu.ac.jp/pub/graphics/p_w_picpath/ ...
- ImageMagick简单记录
一.安装 mac下的安装非常简单 brew search ImageMagick brew install xxx 安装后,可验证 magick logo: logo.gif identify log ...
- 在 Linux 中使用ImageMagick命令行操作图像文件
使用 convert 命令,可以无需打开图像编辑器进行修改图像文件.convert命令包含在ImageMagick安装包里. Centos8安装ImageMagick ImageMagick 可以安装 ...
- ImageMagick远程代码执行漏洞CVE-2016-8707 绿盟科技发布安全威胁通告
在 ImageMagicks 的转换实用程序中, TIFF 图像压缩处理存在一个写边界的问题.攻击者利用一个精心编制的 TIFF 文件,可以导致的界限写,特别是可以利用的情况下进入远程执行代码.任何用 ...
- ImageMagick之PDF转换成图片(image)
安装完ImageMagick之后,直接执行"magick convert f:\parseWord\tmp\testpdf.pdf f:\parseWord\tmp\testpdf.jpg& ...
- php imagemagick 漏洞,ImageMagick漏洞EXP简易生成脚本
前几天看到爆出了关于ImageMagick的远程执行漏洞(CVE-2016-3714),所以为了Evil0x.COM核心成员使用,写了一个exp生成脚本供大家使用.(免责声明,出了事我不管) 总体来说 ...
- Learning ImageMagick 4: 批处理
为什么80%的码农都做不了架构师?>>> ImageMagick是拥有批处理能力的,比如如下命令: montage "*.jpg" -geometry 24 ...
- ImageMagick convert
ImageMagick简介 ImageMagick是一个适用于创建.编辑和组合位图的软件.它能够读.写和转换超过百余种格式的图片. 另外,ImageMagick针对主流的编程语言都有借口,包括G2F ...
最新文章
- mysql创建表对经常要查询的列添加索引或者组合索引
- 11-Reliability, Availability, and Serviceability (RAS) Extensions
- Hashtable源码分析
- pdf 中添加文章操作
- 8位可控加减法器_自主可控:QTouch在军工道系统上的应用
- Python——集合字典解析的对象无序和无副本特性
- 跨专业留学学计算机硕士,跨专业申请中国香港计算机硕士需要注意哪些?
- java面试_数据库
- TimeLine下载地址
- expdp导出表结构_Oracle用exp导出部分表和expdp
- 货物与产品的区别_商品与产物的区别
- verifycode.php,verifycode.php
- WebStorm 汉化教程-Mac
- Gauss-Seidel迭代法解线性方程组
- 极验验证——滑块拼图验证码
- linux安装glib,glib源码安装使用方法
- 生容易,活容易,生活不容易
- 现在接受参加国际创业节 DOer Express的 申请
- 25款很好看的液晶数字字体下载
- 用计算机写作信息技术集体备课,信息技术集体备课总结