我希望我缺少了某些东西,因为我不明白为什么它会以这种方式工作。我有一张PNG图片,它具有完全透明的背景,因为我想将其叠加在
当我使用第二行代码时,它会识别图像的原始透明度属性。
UIImageView
内的其他图像上。
包含在XCode项目中的PNG图像都能正常工作。问题在于,当我使用UIImagePickerController
在运行时选择相同的PNG图像并将其分配给UIImageView
时,由于某种非常奇怪的原因,它不将其视为带透明度的PNG图像,而是添加一个白色背景。
有人之前见过这种情况,我该如何解决?
*更新#1:我决定尝试一些似乎证实了我的理论的东西。我决定将我保存到设备上的原始PNG图像通过电子邮件发送给自己,结果图片以JPG格式发送给我。看起来,当你将图像保存到iPhone的照片中时,它会将其转换为JPG格式,这对我来说相当震惊。希望有人知道如何解决这个问题。原始图片testImage1.png
和testImage2.png
保存到照片中,然后通过电子邮件发回给我,返回为IMG_XXXX.jpg
和IMG_XXXX.jpg
*更新#2:我继续尝试并发现了一些事情,在这个过程中能够回答自己的问题。(1) 我在更新#1中的理论部分正确,但转换不是在保存照片时发生的,似乎是即时进行的。内部照片会存储原始图像扩展名(2) 当我意识到在我的UIImagePickerControllerDelegate
中使用时,我能够验证这一点let imageData = UIImageJPEGRepresentation(image, 1.0)
改为这样
let imageData = UIImagePNGRepresentation(image)
当我使用第二行代码时,它会识别图像的原始透明度属性。