Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么“转换x.png y.png”创建一个不同大小的图像(KB)?

为什么“转换x.png y.png”创建一个不同大小的图像(KB)?
EN

Stack Overflow用户
提问于 2010-09-24 11:22:14
回答 3查看 2.5K关注 0票数 4

我有一些图像,我试图通过调整它们的大小来将它们正常化到一定的规模。当我开始调整图像大小时,我注意到它们的体积(KB)比原始图像大得多。

我只是简单地做了:转换x.png y.png,得到了一些不同,从而进一步验证了它。例如,在一种情况下,x.png为143 in,y.png为208 in。

因为我也在对图像大小进行优化,我想知道是否有人知道为什么会这样,以及任何解决这个问题的建议。

我在windows 7上使用Imagemagick 6.6.4-Q16。

谢谢,阿米特

编辑:

谢谢你的建议,伙计们,很抱歉回复得太晚了!这是我想做的,这是结果。原始图像为112 is。在不使用参数的情况下进行转换会产生169 in的图像。在上面使用OptiPNG (PNGCrush对我不起作用),-o7的结果是113 in。然后,我尝试对0-99之间的每一个X进行-quality X的转换,我发现对于质量90,我的文件大小为116 is,所以OptiPNG更好。但是,当我将-resize转换成一个较小的图像(按比例计算)时,我得到一个没有参数的199 no,最佳转换-quality X (x=0)的196 no,OptiPNG的196 no。这将使文件大小增加75%,因为我将图像的大小从377x2290调整为234x1419。有什么想法吗?

谢谢!

编辑-图片附加+调整大小问题研究:

下面是三个图像的链接(请看标题):原始图像、简单ImageMagick转换后的图像和optipng后的相同输出图像。http://picasaweb.google.com/101622787022351879933/ImageMagickProblem?feat=directlink

此外,我认为ImageMagick的调整大小选项可能存在问题。我做了下面的练习来隔离它:对于1-100之间的每x:转换a.png -resize x% a_x.png

正如预期的那样,图像的大小几乎不断地从1%增加到100%。其中40%和50%略有下降。问题是从40%开始,输出图像大小绕过原始图像大小。只有在达到100%时,图像大小才会大幅度下降,回到原来的大小(实际上,在我第一次编辑时会稍微多一点-169 of,而不是112 of,以及Optipng之后的113 of)。

即使在每个输出文件上运行带有-o7的Optipng也不能纠正这一点。

您可以在下面的图中看到这个实验的结果:http://picasaweb.google.com/lh/photo/fFL1W6SiUfFWhBqdUf3BZg?feat=directlink

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-09-28 18:26:57

好吧,问题是根据迈克尔的建议过滤器。

以下是我所做的:

代码语言:javascript
运行
AI代码解释
复制
convert -list filter > 1.txt

获取所有过滤器的列表。然后,对于列表中的每一个过滤器,我都这样做了:

代码语言:javascript
运行
AI代码解释
复制
convert -filter x -resize 234x1419 a.png b_x.png

我记录了文件大小,然后对每个文件进行了"optipng -o7“操作。

对于我的例子来说,这个图像的最佳过滤器是"Box":它是唯一一个通过optipng实际上从112 by减少到111 by,然后减少到81 by的过滤器。

我认为值得注意的是,在所有这些过程之后,只有Box过滤器实际上缩小了图像的大小,尽管它们在调整大小后都有较少的像素。

BTW:小心下面的陷阱

代码语言:javascript
运行
AI代码解释
复制
convert -filter Box -resize 234x1419 a.png a_box.png

结果在112 as的图像中,可以压缩到81 as,就像我前面说过的。然而:

代码语言:javascript
运行
AI代码解释
复制
convert a.png -filter Box -resize 234x1419 a_box.png

结果为199 of的图像!

票数 4
EN

Stack Overflow用户

发布于 2010-09-24 11:26:05

PNG有许多不同的设置影响压缩,并且不能保证默认的ImageMagick设置选择特定的有效压缩。

最简单的解决方案是在完成OptiPNG后通过ImageMagick运行PNG。默认情况下,它应该生成接近最佳压缩的内容,但您可以要求它进行更详尽的测试,以达到绝对最小值。

关于编辑:这里您必须注意的一件事是调整大小的方法。ImageMagick将在调整大小的过程中使用过滤器,这会对使用PNG压缩图像的程度产生很大影响:毕竟,PNG是无损压缩的,所以它不能像JPEG那样近似。

哪些过滤器对你有效取决于你有什么样的图像,但你可以尝试各种选项,看看什么看起来不错。对于不同的图像,您可能需要不同的过滤器。

票数 4
EN

Stack Overflow用户

发布于 2010-09-24 11:28:12

我想输入的图像不是由ImageMagick创建的吗?可能ImageMagick只是没有最佳压缩,或者输入是一个调色板图像,而ImageMagick创建了一个RGB映像。在前一种情况下,您可以在缩小大小的图像上运行压碎

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3790263

复制
相关文章
参与者模式
JavaScript中的参与者模式,就是在特定的作用域中执行给定的函数,并将参数原封不动的传递,参与者模式不属于一般定义的23种设计模式的范畴,而通常将其看作广义上的技巧型设计模式。
WindRunnerMax
2020/12/25
6300
周志华Deep Forrest论文参与者答网友问,或6月1日开源
【新智元导读】新智元之前发布周志华老师的Deep Forrest论文引起了广泛关注和讨论。本文作者Ji Feng正是该论文的参与者,他在知乎上对这篇论文的评论做了几点评价,例如:没有BP到底行不行?端到端不是模型能够work的必要条件。 【Ji Feng】:作为论文参与者之一,我做的很有限,在这里擅自谈谈我个人对周老师gcForest的一点愚钝看法。这里声明:所有观点仅仅代表我个人。 先说几点个人的结论: 1. 这是一个Deep Model,只不过building blocks是决策树。 这篇工作不是来
新智元
2018/03/28
7330
设计模式:参与者风格
参与者风格将问题分解为问题域相关的对象,每个对象中存在一个队列,并且暴露唯一的send接口用于给队列添加消息。对象轮循队列,并根据取出的不同消息执行不同的操作。
超级大猪
2020/09/18
2650
如何在 React 中点击显示或隐藏另一个组件?
React 是一种流行的 JavaScript 库,用于构建动态用户界面。在一个 React 应用程序中,有时需要一个按钮或链接来触发显示或隐藏一个相关的组件。这种需求可以通过使用 React 状态管理和事件处理机制来实现。
网络技术联盟站
2023/06/07
5.5K0
nuxt 为单独的页面或组件 注入js
代码如下 head() { return { script: [ { charset: 'utf-8', src:'htt
拿我格子衫来
2022/01/24
1.6K0
nuxt 为单独的页面或组件 注入js
主要参与者解决开源许可问题
红帽,谷歌,Facebook和IBM表示,他们将在最新的GNU通用公共许可协议GPLv3中将错误标准应用于其所有开源许可,甚至包括根据较早的GPL协议授予的许可。
田冠宇
2020/12/25
6210
Vue动画之多个元素或组件的动画效果
        前面我们看的是单个元素的过渡效果,我们看一下多个元素或者组件的过渡
十月梦想
2018/10/09
1.9K0
如何将Alexa添加到Raspberry Pi(或任何Linux设备)
我们的Amazon Alexa虚拟设备项目旨在提供将Alexa添加到任何Linux设备(包括Raspberry Pi板等嵌入式系统)的功能。
用户4122690
2020/03/14
1.6K0
如何将Alexa添加到Raspberry Pi(或任何Linux设备)
组件分享之后端组件——基于Golang实现的以并行线程计算或分发到机器集群组件GLOW
近期正在探索前端、后端、系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包含各类语言中的一些常用组件。欢迎大家进行持续关注。
cn華少
2022/06/27
5100
组件分享之后端组件——基于Golang实现的以并行线程计算或分发到机器集群组件GLOW
Vue父子组件之间的传值及父子组件之间相互调用属性或方法
父组件向子组件传值是通过属性的方式 传值,传的值可以是任意类型,甚至可以是父组件的方法或者父组件对象本身。为方便理解可以简单将父组件向子组件传值按以下步骤实现。
赵云龙龙
2020/02/24
16.5K0
IDC转型成为云服务重要参与者
“云”是生活在数据中心的,依赖于数据中心存在。在当今不断变化的环境中,更多业务和数据放在数据中心,现在数据中心几乎被用于存储所有的东西。事实上,今天几乎所有的新技术和应用部署都需要一个位置,这个位置就是数据中心。技术先进的数据中心能够为您的组织提供安全的云计算服务。 虽然越来越多的工作负载是基于云的,提到云总是和虚拟化关联在一起,但在数据中心中仍然有一个非常真实的物理世界,一排排的机架和大大小小的服务器来存储和管理所有的信息。在为云计算服务规划和构建数据中心时管理者必须考虑以下几个重要的细节: 物理资源
静一
2018/03/23
1.3K0
IDC转型成为云服务重要参与者
RPA生态运转体系之参与者的角色配置
众所周知,在RPA生态中,RPA厂商主要负责提供RPA技术和服务,与其他生态参与者提供的技术、产品、服务、方案及渠道共同服务企业客户。
蕉黄
2019/12/19
4130
RPA生态运转体系之参与者的角色配置
「SQL面试题库」 No_98 活动参与者
可以以任何顺序返回结果,Activities 表的每项活动的参与者都来自 Friends 表
不吃西红柿
2023/10/16
1440
手机chrome禁止加载图片_com组件未加载或被禁止
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/01
8490
LeetCode MySQL 1355. 活动参与者(any函数)
可以以任何顺序返回结果,Activities 表的每项活动的参与者都来自 Friends 表
Michael阿明
2021/02/19
3150
组件分享之后端组件——用于将日志写入滚动文件的组件包lumberjack
近期正在探索前端、后端、系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包含各类语言中的一些常用组件。欢迎大家进行持续关注。
cn華少
2022/05/13
5170
组件分享之后端组件——对其GORM增加多数据库支持功能的组件dbresolver
近期正在探索前端、后端、系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包含各类语言中的一些常用组件。欢迎大家进行持续关注。
cn華少
2022/05/15
5750
组件分享之后端组件——docconv组件将文档转换为纯文本
近期正在探索前端、后端、系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包含各类语言中的一些常用组件。欢迎大家进行持续关注。
cn華少
2022/03/06
7710
点击加载更多

相似问题

从独立实体更新DB的正确方法是什么?

13

用实体更新列表的正确方法是什么?

20

如何在ASP.NET MVC中通过AJAX正确调用POST操作方法

11

使用实体框架添加或更新实体的正确方法是什么

14

使用NHibernate以正确的方式更新实体集合

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档