问题标签 [uiimagepngrepresentation]
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.
objective-c - XCODE 5 iOS7 how to convert UIImage (PNG) to NSData without losing the transparent background
i have a method that receives a UIImage
I convert it to NSData
and make a request to post that Data, it works on iOS 6 but when i try on iOS 7, the image lose the transparent background.
this is what i have tried till now:
on the the imageView3
i'm just showing it as i get it without background (till here i get it all fine) but when i convert to NSData
an then get it back to UIImage
it loses the transparency,
code running on iOS 7
Same code running on iOS 6 and below works perfect!!
i have created an example os my issue on Github example
uiimage - 为什么将 UIImages 保存到磁盘会增加内存使用量
我正在下载 App.net 用户上传的封面图片。App.net 要求这些封面图片的宽度至少为 960 像素。我用一个简单的方法来获取它们AFImageRequestOperation
:
这是有效的,没有内存峰值。
我想缓存经过身份验证的用户的图像,这样用户就不必在每次打开应用程序时都下载它们。一旦我将下载的图像存档到磁盘,我的内存就会出现巨大的峰值。例如,我的封面图片目前是 3264 x 2448 像素。在我的 Mac 上下载时,它大约为 1.3 MB。但是,一旦我使用TMCache 的方法UIImagePNGRepresentation(image)
或通过TMCache的setObject:forKey:
方法创建了一个 NSData 对象,应用程序的已用内存就会飙升至大约 60,0 MB。
为清楚起见,这就是我将文件写入磁盘所做的一切:
谁能告诉我发生了什么?为什么将 1,3 MB 外推到几乎 60 倍。我怎样才能避免这种大规模且可能造成严重后果的通货膨胀。这是一张图片,如果用户打开多个配置文件,每个配置文件都有一个缓存图像怎么办?
ios - UIImagePickerController 显示正确的图像,直到我保存图像
我正在使用 UIImagePickerController 获取 UIImage。得到图像后,我将其设置为 UITableView 的背景。这张照片看起来和我拍的一模一样。但是,如果我将图像保存到我的服务器然后重新加载图像。无论我使用UIImagePNGRepresentation
还是保存UIImageJPEGRepresentation
,图像都会在保存时旋转(旋转发生在服务器调用之前)。我在这里读到 png 会旋转,但 jpeg 不会。但对我来说,两者都旋转了 90 度。有什么想法为什么 jpeg 在我的情况下不好?
更多的
我从图像选择器中获取原始图像作为 UIImage。然后我保留一个指向 UIImage 的指针。一段时间后,我想保存 UIImage。所以通常我会这样做UIImagePNGRepresentation(myUIImage)
。我正在使用 AFNetworking 作为
imageDictionaries 的其中一项看起来像这样
另请注意,我的代码工作正常。唯一的问题是图像在旋转。self.backgroundImage
是一个指向我从 UIImagePickerController 获得的 UIImage 的指针
如果我使用UIImagePickerControllerEditedImage
. 但这是另一回事了。
swift - PNG图像未保存到文档目录
我正在尝试从照片库加载图像并保存到手机的文档目录中,但是当我查看文档目录时,尚未创建 PNG。我正在使用以下代码:
iphone - UIImagePNGRepresentation 以横向保存纵向图像
在我使用 imagePickerController 从 iPhone 画廊获取图像后,我想将该图像保存在应用程序文档目录中,因此我使用以下代码:
但是如果图像是纵向的,则生成的文件也是横向的...如果我尝试在 xib 上的 imageView 中查看图像,则图像结果正确...(例如,正确显示 2448 × 3264 的图片) 但是在我保存了该图像之后,创建的文件是 3264 × 2448 ......有人知道我该怎么做才能避免这种变化吗?非常感谢。马西
ios - : ImageIO: UIImagePNGRepresentation 中的 CGImageReadGetBytesAtOffset
我能找到的关于这个错误的唯一其他信息是这里,这没有帮助。
尝试保存图像时出现以下错误。这似乎只发生在我一次有多个图像(~6)时。它何时发生似乎也是完全随机的。有时一切都很好,有时它会在 1 张图像上失败,有时会在 3 张图像上失败,有时应用程序会因EXC_BAD_ACCESS
错误而完全崩溃。
错误:ImageIO:CGImageReadGetBytesAtOffset:^^^ 错误 ^^^ CGImageSource 是使用数据大小创建的:1144891 - 当前大小仅为:1003855
这是保存图像的代码:
我收到了这个错误,结果我的图像没有保存(或者只保存了一半),这完全弄乱了 UI 显示和任何后续应用程序的启动。我已将其范围缩小到UIImagePNGRepresentation
通话。
在相关的说明中,该代码锁定了 UI;我想是因为UIImagePNGRepresentation
电话;但是,据我所知UIImagePNGRepresentation
,这不是线程安全的,所以我不能在后台执行此操作。有谁知道解决这个问题的方法?
谢谢!
ios - 将 UIImage 写入 PNG;将 PNG 读入 UIImage;生成的图像具有两倍的分辨率
按照这些步骤,我得到了意想不到的结果:
1) 将 UIImage 写入 PNG
2)将PNG读入UIImage
结果:UIImage 的大小(PNG 之前和之后)不同。通过从 PNG 读取创建的 UIImage 的分辨率是用于创建 PNG 的原始 UIImage 的两倍。
Swift 伪代码如下:
否则一切都很好。显示新读取的图像效果很好。
我正在运行这个连接到 iPhone 6。任何想法将不胜感激。
加里
swift - UIImagePNGRepresentation(UIImage()) 返回 nil
为什么会UIImagePNGRepresentation(UIImage())
退货nil
?
我试图UIImage()
在我的测试代码中创建一个只是为了断言它是正确传递的。
我对两个 UIImage 的比较方法使用UIImagePNGRepresentation()
,但由于某种原因,它返回nil
.
谢谢你。
ios - UIImagePngRepresentation 有时会导致内存泄漏
我的代码显示出奇怪的行为,我搜索了几个小时都没有运气。
我的代码片段:
如您所见,我将图像保存到本地文件夹,当我需要它时,我从本地文件夹的加载图像中加载它并使用 UIImagePNGRepresentation 将其转换为 NSData
奇怪的是,对于某些图像,它按我的预期工作。但是,对于某些图像,内存不会被释放。(用分配工具检查。堆不断上升)
看到第一个还活着的点了吗?查了一下历史,顺利的话应该是这样的
对于有问题的图像,是这样的
两个alloc,一个dealloc ..我想这是问题,但我不知道为什么它只发生在特定图像上。当我检查堆栈跟踪时,我想这意味着 UIImagePNGRepresentation 是问题,但我不知道这究竟意味着什么,所以我将附加堆栈跟踪。
任何帮助将不胜感激!!谢谢!!
ios - 为什么与 UIImagePNGRepresentation 的比较不起作用?
我有一个应该代表复选框的按钮。单击按钮时,imageView.image-Property 设置为另一个 UIImage。所以,我有两个变量用于选中和未选中的图像。
通过单击按钮执行以下方法
没有两个 if 子句的陈述为真,对于 NSLog-Statements,控制台显示了这一点
当前 <89504e47 0d0a1a0a 0000000d 49484452 00000019 00000013 08060000 006572a6 05000000 01735247 4200aece 1ce90000 001c6944 4f540000 00020000 00000000 000a0000 00280000 000a0000 00090000 01066167 14d70000 00d24944 4154480d b48d3d0a c2401046 7304c142 116f6021 587a121b 1b1b151b 1b5b6f21 5a780183 781425e0 45442b09 ab6f7037 99950125 9081d9f9 7bdf7e49 526338e7 66e4be36 0b3e9fbe 08aaabc5 847fe762 2041bf88 4c589c3e a76a2ffa 1d390c6a fa756420 03cb6300 aa54f459 d0c95f85 01c3400e d43325f5 fdb800fe 68d0ae44 a7228d64 004dd209 40c97d9d 44d08f01 dd3218d0 5f4d9c43 9f7c2a70 6482c612 5d57e92e 0652ae00 db086e22 a0e664ab bcda1d4c 877c2893 8d4daa2d 82431078 b39e3a47 2df706fc fd8bdf46 901fde00 0000ffff f01a55c5 000000cf 49444154 ad92bd09 02411484 4f453136 b014c1cc 5030b403 41033b10 0b10ccc5 16446cc0 d02a844b 4d8d4e53 57bf39df c2b226e7 eac0e3cd fb9b81db cbb200ce b9c313900b65013e 0a564a4a bb4d3fb7 f905be30 be8d773f 6a96bdc9 187ed4a1 009ffb65 ca16f5d9 fa05bc43 24994c24 caf14e62 027c6dbd 93d5377a 5deba59b 98c0aa74 791bddcd e081414f 7301fe9b 8944109e 054668ba befa1e7f 31911842 43e28ad9 c08bfb9c 6a3245ac 4134a3a8 45b5e675 4c9664bd 5bf5bf4b 0729a864 82f09e45 410ffb6d e86ee33f 61985f0d b75066ce 264e2e00 00000049 454e44ae 426082>
已检查 <89504e47 0d0a1a0a 0000000d 49484452 00000019 00000013 08060000 006572a6 05000000 01735247 4200aece 1ce90000 001c6944 4f540000 00020000 00000000 000a0000 00280000 000a0000 00090000 01130cba f03c0000 00df4944 4154480d b4913b0a c2401086 7304c142 116f6021 587a121b 1b1b151b 1b5b6f21 5a780183 781425e0 45442b71 b37ea3fb 84051f90 81ecccce 7cfffc24 c9b20a43 6b3d514a 6d2bb3c0 60cca34b a2121376 4fc5c0c4 2c32c1f4 6027ff64 3ecd065d 3fd02e23 03b960b2 0f809f4b f48515c9 2e6740b3 27039a47 522e3531 74c01705 fce2a5f2 471ec9e8 d7312865 4e7a186e 14411f2e 68e64627 3bce491c a0cbf06e 41f22009 269ab06d ab63c729 81f81660 13e82202 b2bc51c3 4fd3154c 0bf6261a 097efc2a 4d065da0 dd1b7767 27184725 440d83ab 2329d0af 23c85c9e 000000ff ffc36350 d7000000 d3494441 54a5923d 0ac24014 84a3a258 5b7814c1 ce52b0f4 06422cbc 817800c1 5ebc8288 17b0f414 82adad55 b4ddd56f c20b2c6b 6336032ff3fe7666 59926501 bcf7e70f 800bb161 16ac9429 fd3e3b77 cde107b4 56ee9c3b c4bb3f75 65c2fe9c fca28386 55b54cdd 6376531f d6650644 92c942a2 dcec2831 817ca71e c257d5f0 0b1aaa07 a79b4800 f1ad4405 84dfc60e 1e692e90 37333191 a5c4058c 3c342ed5 ed43dddc c48ca6e8 3f119c84 06364b32 c911eb10 dd285a51 ad799bd8 10b5ff2e 9da98dbf 7e61544f 7a73e012 c263b28f 9f52f517 246950a5 7cf4e6af 00000000 49454e44 ae426082>
unchecked <89504e47 0d0a1a0a 0000000d 49484452 00000018 00000012 08060000 0041ec1e 9e000000 01735247 4200aece 1ce90000 001c6944 4f540000 00020000 00000000 00090000 00280000 00090000 00090000 0065c6d0 72350000 00314944 41543811 62601805 a484c07f 0a0141bb 2834ff3f d1161054 88a600e6 3034614c 2ed10ad1 b412ad8f 688583c9 02000000 00ffff66 fa95da00 00003949 44415463 604002ff a1004988 2826d1fa 88568866 2dd1fa88 56386a01 5a0810e4 121db444 2b44b392 687d442b a4d40298 45a4d268 f682b900 f6d17e90 3cc7b79b 00000000 49454e44 ae426082>
但是我没有对中间执行的代码中的图像做任何事情。(在这种情况下)当前图像和检查图像不同的原因可能是什么?
谢谢!