奇怪的知识又增加了,ImageMagick PDF转JPG图片合并的时候报Unsupported Image Type

之前在PDF转JPG时使用了ImageMagic这个强大的工具,起初使用都没有什么问题,但是突然生产出现部分转换后的图片合并失败的问题

报错信息:

javax.imageio.IIOException: Unsupported Image Type
       at com.sun.imageio.plugins.jpeg.JPEGImageReader.readInternal(Unknown Source)
       at com.sun.imageio.plugins.jpeg.JPEGImageReader.read(Unknown Source)
       at javax.imageio.ImageIO.read(Unknown Source)
       at javax.imageio.ImageIO.read(Unknown Source)

JPG是正儿八经的jpg,我们使用JAVA自带的IMAGE类库,网上查了一下这种情况是因为jpg的颜色模式是cymk,而jdk默认能处理的rgb颜色模式的图片

刨去报错的内容,我们先来了解一下这两个颜色模式

RGB

RGB色彩模式是基于光源色发光原理定义,适用于显示器等发光体的颜色表示

以黑色介质为基础,通过光源三原色(红、绿、蓝)不同比例的亮度叠加,来获得各种不同的颜色,也就是所谓的相加色

CYMK

CMYK即CMY色彩模式是基于固有色光吸收/反射原理定义,适用于各种印刷媒介;

白光照射到物体上后,物体吸收掉其固有色的互补色光,从而反射光也就呈现为其固有色
以白色介质为基础,通过印刷三原色(青、品红、黄)不同比例的油墨混合,吸收原始色光中的对应波长,从而获得各种不同的颜色的反射效果,也就是所谓的相减色。

简而言之,RGB是颜色的叠加是相加色;CYMK是调节不通比例的油墨原色,是相减色

网络上有一堆CYMK转RGB的代码,但是我们的图片是ImageMagick生成的,所以我们还是要通过指令参数解决,指令模板如下:

magick convert -density 220 -quality 80 -background white -alpha remove  -colorspace sRGB {0} {1}/1.jpg

-colorspace sRGB 指定颜色模式为rgb,搞定

Original: https://www.cnblogs.com/surging-dandelion/p/15634968.html
Author: 蒲公英的狂想
Title: 奇怪的知识又增加了,ImageMagick PDF转JPG图片合并的时候报Unsupported Image Type

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/579566/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Pinpoint2.X搭建重要信息

    这里提供一个Pinpoint2.X搭建重要信息,因为最近在搭建Pinpoint,基本全部的流程都走了一遍,我这边是准备自己后续维护Pinpoint,写插件是必须的,也有可能研究一下…

    Java 2023年6月14日
    074
  • c3p0-config.xml

    c3p0-config.xml 一般将 c3p0 连接池的配置文件放置到到src目录下,该文件制订了连接数据库和连接池的相关参数。可以更方便的连接MySQL数据库。 com.mys…

    Java 2023年6月8日
    074
  • 2021年末总结

    一眨眼,距离上次写作已经两月有余。自己偷懒+繁忙,一直停滞下来,没有行动。这次得抓住年末的小尾巴,来一篇总结性的文章,对2021年的生活、工作画上一个完满的句号。 一、2021 去…

    Java 2023年6月15日
    098
  • 「SpringBoot」如何优雅地启动管理SpringBoot项目

    本文主要讲述一下如何优雅地管理SpringBoot项目。 背景 课堂上,当小明形如流水地回答完沐芳老师提出来的问题时,却被至今没有对象的胖虎无情嘲讽了? 沐芳老师:小明,你平时是如…

    Java 2023年6月13日
    097
  • spring MVC配置详解(转)

    现在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的…

    Java 2023年5月30日
    065
  • Java的反射

    在我们平时的开发中,我们肯定会遇到过spring框架。框架中我们几乎不需要手动去new对象。只需要通过一些简单的配置,spring就会把对象为我们创建好。这里就用到反射。下面我们详…

    Java 2023年6月7日
    056
  • Spring事务的5种隔离级别和7种传播性

    ISOLATION_DEFAULT,ISOLATION_READ_UNCOMMITTED,ISOLATION_READ_COMMITTED,ISOLATION_REPEATABLE…

    Java 2023年5月30日
    067
  • SpringBoot文件分片上传

    背景 最近好几个项目在运行过程中客户都提出文件上传大小的限制能否设置的大一些,用户经常需要上传好几个G的资料文件,如图纸,视频等,并且需要在上传大文件过程中进行优化实时展现进度条,…

    Java 2023年6月15日
    078
  • 4.门面Slf4j+slf4j-log4j12+log4j

    1.导入pom依赖 org.slf4j slf4j-api 1.7.27 org.slf4j slf4j-log4j12 1.7.27 log4j log4j 1.2.17 2.增…

    Java 2023年6月13日
    068
  • Mac MySql版本问题sql_mode=only_full_group_by 的解决方案

    1.切换root,打开配置文件 bash;gutter:true; sh-3.2# vi /etc/my.cnf</p> <pre><code>…

    Java 2023年6月6日
    077
  • 带你领略下iOS中OC的“alloc”源代码,让你在工作中不在迷惑

    前言前面我们使用官方开源的objc源码进行了编译调试 objc4-818.2源码编译调试笔记 前言为什么会想要调试源码? 苹果开源了部分源码, 但相似内容太多, 基本找不到代码见的…

    Java 2023年6月16日
    074
  • C# 线程手册 第七章 网络和线程

    在本书的之前章节,我们已经深入地了解了C#.NET 中的线程并探讨了多线程编程中的不同概念和技术。现在你已经是一个线程专家啦,我们将要使用C#实现一个简单的多线程客户端-服务端程序…

    Java 2023年5月29日
    0150
  • 稀疏数组

    基本介绍 当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。 稀疏数组的处理方法是: 1、记录数组一共有几行几列,有多少个不同的值 2、把具有不同值…

    Java 2023年6月6日
    086
  • 1.Spring Boot 的认识

    以前开发我们都是使用springMVC去开发,但是现在我们全部已经使用springboot了,因为它很方便,我也是便于从头梳理一下springboot,让自己更加深入了结sprin…

    Java 2023年6月9日
    067
  • 群晖 docker 下nexus3 创建docker私有仓库

    登录后创建Blob Stores(docker MyDockerBlobStores) 创建docker host(可以push/pull) docker 代理仓库,可以是dock…

    Java 2023年6月6日
    069
  • java限制方法执行时间;Future使用

    public static void main(String[] args) { ThreadPoolTaskExecutor threadPoolTaskExecutor = n…

    Java 2023年5月29日
    092
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球