如何针对特定目标文件大小优化图像大小?

     2023-03-08     31

关键词:

【中文标题】如何针对特定目标文件大小优化图像大小?【英文标题】:How can I optimize UIImage resizes for a specific target filesize? 【发布时间】:2012-06-25 01:34:57 【问题描述】:

对于任何给定的文件数据大小,我希望能够调整(或压缩) UIImage 的大小以适应该数据限制。这个问题不是关于如何调整大小或如何检查文件大小的问题......它是关于一种以高性能方式获得它的算法。

已经在这里搜索,我找到了this thread,它谈到了以线性或二进制算法降低图像 jpeg 质量。这不是很高效,最多需要几十秒。

我在 iOS 上工作,因此图像可以接近 10MB(来自 iPhone 4S)。我的目标虽然可变,但目前是 3145728 字节。

我目前正在使用UIImageJPEGRepresentation 进行一点压缩,但要达到我的低目标,对于这么大的照片,我似乎不得不损失很多质量。 UIImage 大小和NSData 大小之间有关系吗?是否有一些功能可以让我说:

area * X = dataSize

...求解一个比例因子,以便我可以一次性调整大小?

【问题讨论】:

使用 JPEG 压缩,它肯定取决于图像的性质,即具有大量高频信号(即锐边)的图像会比没有的图像大。因此,如果不实际执行压缩,将很难提前知道。 有一个好的大致估计吗? png呢? 即使使用 PNG,它也将取决于图像的性质。我猜图像大小为 10MB,您正在处理照片或自然图像 - 而 PNG 将是非常垃圾的。我能想到的唯一可以提前知道大小的格式是 BMP 或类似的未压缩格式。但是你当然会失去压缩的好处。 如何使用不同尺寸的非常复杂的样本图像设置预先计算的基准。您可以获取不同场景的压缩比大致数据,并将它们用作需要压缩和调整大小的指南。 【参考方案1】:

在查看您链接到的线程后,我有一个想法:压缩 10MB 的图像会相对较慢。如何将大小调整为更小(以便压缩更快),然后执行压缩算法(来自链接)。那么这可以作为压缩10MB图像大小的指导吗?这个想法是相同图像的压缩率应该相似,与大小无关。

假设 1000x1000 像素压缩后为 10MB,目标大小为 3MB。

然后说以相同质量压缩的较小的 100x100 像素(例如)是 C MB。然后在 100x100 图像上执行二分搜索算法,直到 size = C * (3/10)。然后对 1000x1000 的图像使用这种压缩质量来获得大约 3MB 的图像。

注意:我不知道这将如何运作 - 这只是一个建议。为较小尺寸的图像选择什么尺寸(我使用 100x100)也只是一个猜测,需要进行一些试验。

【讨论】:

我应该如何确定将其缩小到哪个尺寸?如果我可以半准确地衡量这一点,那么就不需要迭代了吗? 这样设置,好像JPG的压缩效果还是不错的。以前,我在 1.0 中一直使用无压缩。在测试和设置时,我发现下降到 0.9 会导致文件大小下降 54%。 0.8 => 60%、0.7 => 66%、0.6 => 77% 的文件大小更小。这一切都没有可察觉的质量损失。甚至 Photoshop 也将 High JPEG Quality 设置为 60,所以我想我将其设置为 0.6 并忘记它。将此答案标记为正确,因为它引导我找到适合我情况的正确答案。

如何使用 iOS 轻松调整/优化图像大小?

】如何使用iOS轻松调整/优化图像大小?【英文标题】:Howtoeasilyresize/optimizeanimagesizewithiOS?【发布时间】:2010-10-1108:37:56【问题描述】:我的应用程序正在从网络下载一组图像文件,并将它们保存到本地iPhone磁盘。其中一些图像... 查看详情

如何在 Ant 目标中使用文件大小

】如何在Ant目标中使用文件大小【英文标题】:HowtousesizeoffileinsideAnttarget【发布时间】:2008-11-2315:56:47【问题描述】:我目前正在用Ant构建脚本替换我的自制构建脚本。现在我需要用特定文件的大小替换各种标记。我知道如何通... 查看详情

如何在目标 c 中减小图像的大小

】如何在目标c中减小图像的大小【英文标题】:HowtodecreasethesizeoftheImageinobjectivec【发布时间】:2012-09-2610:32:32【问题描述】:问题是,当图像大小超过60kb时,它不会将图像发布到web服务,但如果图像大小小于60kb,则将其发布到... 查看详情

如何将 GCC LTO 与不同优化的目标文件一起使用?

】如何将GCCLTO与不同优化的目标文件一起使用?【英文标题】:HowtouseGCCLTOwithdifferentlyoptimizedobjectfiles?【发布时间】:2017-08-1109:53:33【问题描述】:我正在为基于Cortex-M4的微控制器编译带有arm-none-eabi-gcc的可执行文件。非性能关... 查看详情

如何在 OpenCV 中将图像调整为特定大小?

】如何在OpenCV中将图像调整为特定大小?【英文标题】:HowtoresizeanimagetoaspecificsizeinOpenCV?【发布时间】:2012-07-2621:47:32【问题描述】:IplImage*img=cvLoadImage("something.jpg");IplImage*src=cvLoadImage("src.jpg");cvSub(src,img,img);但源图片的大小与im... 查看详情

键入时查找文件的大小

...的目标是获得用户在特定项目或文件中的打字速度。关于如何实现这一目标的任何建议?【问题讨论】:你用什么来输入文件?仅当您与正在输入的程序进行通信时,否则不会(没有MAJOR内存黑客)。@Ki 查看详情

iOS:如何从 AssetsLibrary 获取特定大小的图像

】iOS:如何从AssetsLibrary获取特定大小的图像【英文标题】:iOS:HowtogetimagewithspecificsizefromAssetsLibrary【发布时间】:2013-07-1702:12:31【问题描述】:我的应用出现问题,期待您的帮助。我想将特定尺寸**(1200*1800)**的照片从库上传... 查看详情

如何使用 WASTED 和 xcode 来优化图像大小?

】如何使用WASTED和xcode来优化图像大小?【英文标题】:HowtouseWASTEDwithxcodetooptimizeimagesize?【发布时间】:2014-05-0823:26:34【问题描述】:我正在尝试在我的应用上使用WASTED来减小其大小(目前为839MB)。我已按照步骤将其集成到我... 查看详情

优化从相机胶卷中挑选的图像以减小文件大小

】优化从相机胶卷中挑选的图像以减小文件大小【英文标题】:Optimiseimagepickedfromcamerarolltoreducefilesize【发布时间】:2013-05-0911:01:31【问题描述】:在我的应用程序中,如果用户从相机胶卷中选择一张图像用作公司徽标(添加到... 查看详情

特定分辨率的可绘制文件夹的不同图像大小

】特定分辨率的可绘制文件夹的不同图像大小【英文标题】:Differentimagesizesforresolution-specificDrawablefolders【发布时间】:2014-05-2901:17:12【问题描述】:在Androidres文件夹中,我们看到了几个不同的文件夹,它们处理不同分辨率的图... 查看详情

如何将 UIImage 调整为特定大小

】如何将UIImage调整为特定大小【英文标题】:HowcanIresizetheUIImagetospecificsize【发布时间】:2012-07-0319:41:25【问题描述】:在我的应用程序中,我正在用相机拍照并以320*320UIView显示。但由于图像分辨率高于UIView,它看起来有点挤压... 查看详情

强制 UITabBarItem 图像为特定大小

】强制UITabBarItem图像为特定大小【英文标题】:ForceUITabBarItem\'simagetoaspecificsize【发布时间】:2011-08-1419:34:29【问题描述】:我有一个由xib文件初始化的UITabBarController。它的所有视图控制器也由xib文件初始化。在苹果的HIG中,指... 查看详情

当视口小于特定大小时,如何告诉 srcset 属性加载 NO 图像

】当视口小于特定大小时,如何告诉srcset属性加载NO图像【英文标题】:HowdoItellsrcsetattributetoloadNOimageswhenviewportsmallerthancertainsize【发布时间】:2014-12-2120:32:40【问题描述】:我无法理解如何阻止srcset在屏幕上加载任何图像768px。... 查看详情

如何将具有特定大小的字符复制到另一个图像中与原始图像相同的位置?

】如何将具有特定大小的字符复制到另一个图像中与原始图像相同的位置?【英文标题】:Howcopythecharacterwiththespecificsizeinanotherimageatthesamepositionasitwasintheoriginalimage?【发布时间】:2014-06-2513:41:32【问题描述】:我开发了一个应用... 查看详情

针对不同屏幕调整图像大小

】针对不同屏幕调整图像大小【英文标题】:Imageresizefordifferentscreens【发布时间】:2013-03-3016:17:16【问题描述】:大家好,上图显示了一系列图像和相应的链接文本。要求是我需要缩小图像和文本,以便它们在不同的屏幕分辨率... 查看详情

用于从网站下载图像并显示文件大小的 Java 程序

...取html文档并在代码中显示图像的大小。不过,我不确定如何实现这一目标。我不需要实际下载和保存图像,我只需要它们在网页上出现的大小和顺序。例如:一个网 查看详情

创建特定大小的 UIImage

...ofaspecificsize【发布时间】:2012-01-1608:33:28【问题描述】:如何从头开始创建UIImage。具体来说,我想创建一个大小为320x50的UIImage。然后,我希望能够在该图像上绘制特定颜色的多边形。【问题讨论】:您可以使用QuartzGraphics轻松... 查看详情

如何使用 PIL 减小图像文件大小

】如何使用PIL减小图像文件大小【英文标题】:HowtoreducetheimagefilesizeusingPIL【发布时间】:2012-05-2308:41:35【问题描述】:我正在使用PIL通过将较大的图像转换为较小的图像来调整图像的大小。是否有任何标准方法可以在不损失太... 查看详情