问题标签 [uiimagejpegrepresentation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
402 浏览

ios - 迅速将 UIImage 降级到 1MB

UIImageJPEGRepresentation是降级图像的绝佳功能。

我只是在寻找将图像降级到1MB

是的,有一种循环方式,我们可以应用多重检查,直到我们收到 1024KB 数据计数。

请问有什么优雅的解决方案吗?

0 投票
1 回答
285 浏览

ios - 为什么在 UIImagePNGRepresentation 之后图像大小会增加?

我的 iPhone 的照片应用程序中有图像文件。

我已经通过空投将它带到我的 macbook 并检查了图像的大小 = 1.9 MB

我将相同的图像保存到 iphone 的文件应用程序并检查了那里的图像大小 = 1.9 MB

我通过 , 将相同的图像带入了我的应用程序UIImagePickerController

  • 使用UIImagePNGRepresentation并打印了数据计数/字节计数 = 15.8 MB
  • 与compressionRatio 1.0一起使用UIImageJPEGRepresentation并打印数据计数/字节计数= 5.4 MB
  • 使用UIImagePNGRepresentation并将其保存到本地(DocumentsDirectory)并检查文件大小 = 15.8 MB
  • 与compressionRatio 1.0一起使用UIImageJPEGRepresentation并将其保存到本地(DocumentsDirectory)并检查文件大小= 5.4 MB

现在,我的问题是,为什么UIImagePNGRepresentationORUIImageJPEGRepresentation将文件大小增加到那么大?我什至把这张图片上传到我的服务器上,显然得到了更大的图片尺寸。我想以原始质量将给定图像上传到我的服务器,但我不想要这么大尺寸的图像(因为它在设备上的实际尺寸完全不同),有没有其他方法可以防止原始图像的大小和质量两个都?。

0 投票
1 回答
210 浏览

ios - 为什么 UIImage(data:) 不以压缩文件大小创建图像?

在将 UIImage 转换为压缩的 JPEG 表示并返回 UIImage 后,我试图使用下面的代码缩小图像的大小,但 UIImage 文件仍然很大,如何缩小 UIImage 的文件大小?

0 投票
1 回答
44 浏览

uiimagejpegrepresentation - 如何使用“imageWithData”保存和检索 UIImages 保持正确的图像格式?

我正在创建和存储 OpenGL ES1 3D 模型,并希望将用作纹理的图像文件包含在与 3D 模型数据相同的文件中。我无法以可用格式加载图像数据。我正在使用 UIImageJPEGRepresentation 转换图像数据并将其存储到 NSData 中。然后我将它与所有 3D 数据一起附加到 NSMutableData 对象,并将其写入文件。数据似乎可以毫无错误地写入和读取,但在尝试使用图像数据创建“CGImageRef”时遇到问题,我用它来为 3D 模型生成纹理数据。从文件加载后,图像数据似乎处于无法识别的格式,因为它会生成错误“CG​​ContextDrawImage:无效上下文 0x0”。当我尝试创建“CGImageRef”时。我怀疑图像数据以某种方式开始未对齐,导致它在尝试创建“CGImageRef”时被拒绝。我很感激任何帮助。在这一点上我很难过。所有的数据大小和偏移量加起来看起来还不错。保存和加载不会出错。图像数据似乎有点不对劲,但我不知道为什么。

这是我的代码:

0 投票
0 回答
85 浏览

swift - 缩小全屏图像的大小

我有一个带有“Snapchat 风格的相机”的应用程序(即你拍照,然后叠加文字和表情符号)。我目前正在将分辨率降低到 1080 x 2040,然后转换为质量为 0.75 的 jpegRepresentation。

这仍然给我一个> 2mb的文件大小,看起来很高。关于如何在不放弃太多质量的情况下降低文件大小的任何建议?我仍然希望图片在全屏尺寸下看起来不错。

调整图像大小,然后发送到存储

存储管理器:将图像转换为 jpeg 并进行压缩。然后上传

将 UIView 转换为 Image 的扩展

调整 UIImage 大小的扩展

0 投票
0 回答
36 浏览

ios - Swift base 64 string DIRECTLY to Jpeg on filesystem

我在 API 调用中获取 base64 图像,我需要将这些图像存储为本地文件。

我试图编写这些数据,而不必将字符串转换为 UIImage然后将UIImage 转换为JPEGRepresentation

如果可以避免的话,我不希望先创建 UIImages 然后更改为 JPEGs 的开销,但我不知道这是否可能?

我可以在我的应用程序容器中看到所有文件都在那里并且文件大小正确,但是当我尝试打开它们时,它们不会,并且我被告知它们可能已损坏。

它的用法如下:

0 投票
2 回答
213 浏览

ios - UIImageJPEGRepresentation Swift 的错误循环

我正在将收到的推送通知中的图像保存到磁盘。起初我尝试使用我通常在整个应用程序中使用的静态函数,但我无法引用它来自NotificationService.swift哪个通知扩展。所以我复制了文件中的函数来使用它,但是 Xcode 陷入了错误循环。无论我声明data它都会引发错误。如果从错误中执行更正,'jpegData(compressionQuality:)' has been renamed to 'UIImageJPEGRepresentation(_:_:)'它会抛出错误'UIImageJPEGRepresentation' has been replaced by instance method 'UIImage.jpegData(compressionQuality:)'你能看到这里发生了什么吗?这是功能:

另外,为什么我不能将原始静态函数引用为Functions.saveImage?非常感谢一如既往。

错误循环:

错误循环

0 投票
1 回答
136 浏览

objective-c - UIImageJPEGRepresentation 在 iOS 13.2.3 中不起作用

我正在使用以下代码转换UIImageNSData

该代码在 iOS 12.4 上运行良好,但是当我在 iOS 13.2.3 上尝试使用它时,它什么也不返回。

任何帮助将不胜感激。

谢谢你。

0 投票
1 回答
67 浏览

ios - UIImageJPEGRepresentation() 如何工作

一个 700x700 png 图像,显示 imageview 成本为 1.88Mib 内存,但如果我用 UIImageJPEGRepresentation(data, 0.9) 压缩它,内存成本降低到 736Kib 但图像大小不变,jpg 像素没有 alpha,但内存成本减少了将近 62%,我想知道 UIImageJPEGRepresentation() 是如何工作的?谢谢

加载png图片:

加载jpg图片

jpg 内存消耗:

jpg 内存消耗

png 内存消耗:

png 内存消耗

0 投票
1 回答
402 浏览

ios - CIContext JPEG/PNG 输出函数产生空白图像

我正在尝试将 CIImage 输出到磁盘,并且正在寻找最有效的方法。我发现了这个问题,它建议使用 CIContext 的writeJPEGRepresentation/writePNGRepresentation方法。但是,每当我尝试使用这些方法时,它们都会产生空白图像。

对于 JPEG,它会生成纯黑色图像。PNG 生成纯透明图像。HEIF 方法也产生了纯黑色图像。如果我使用生成 a 的jpegRepresentationorpngRepresentation方法而Data不是直接写入磁盘,则结果相同。

如果我改为使用 渲染这些对象createCGImage,然后从 CGImage 中写出数据,它们看起来很好。

任何想法为什么会发生这种情况?

这是一个说明问题的简单示例:

testFromCIImage.jpeg显示为空白图像,与原始输入图像大小相同。testFromUIImage.jpeg看起来与输入图像相同。

我创建了一个示例项目来说明该问题,以及一些示例图像。

更新

我只发现图像输出正确的一种情况 - 当源图像是 PNG,并且colorSpace参数writeJPEGRepresentation与源图像的颜色空间匹配时。即使色彩空间匹配,我也没有成功使用任何 JPEG。