检测 UIImage 是 PNG 还是 JPEG? [英] Detect whether an UIImage is PNG or JPEG?

查看:15
本文介绍了检测 UIImage 是 PNG 还是 JPEG?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

目前我正在通过 MonoTouch 进​​行 iPhone 开发的第一步,我正在使用从照片库中读取的 UIImage.

Currently doing my first steps with iPhone development through MonoTouch, I am playing with an UIImage that I read from the photo library.

我想要实现的是获取图像的原始字节数组(byte[]).

What I want to achieve is to get the raw byte array (byte[]) of the image.

我知道 MonoTouch 中有 UIImageJPEGRepresentationUIImagePNGRepresentation 包装器.我也知道如何使用它们.我不知道的是:

I know that there are the UIImageJPEGRepresentation and UIImagePNGRepresentation wrappers in MonoTouch. I also know how to use them. What I don't know is:

如何决定调用这两个函数中的哪一个?

How do I decide which of these two functions to call?

即如果原始图像是 JPEG 图像,我不想将其作为 PNG 而是作为 JPEG,反之亦然.

I.e. if the original image is a JPEG image, I do not want to get it as an PNG but also as a JPEG, and vice versa.

有没有办法做到这一点,或者我是否遗漏了一些要点?

Is there a way to do this, or am I missing some points on this?

推荐答案

一旦你有了 UIImage,它就能够使用 UIImageJPEGRepresentationUIImagePNGRepresentation.原始图像的格式仅在从中创建 UIImage 时才重要(决定哪个 CFImage 提供程序加载它).

Once you have a UIImage, it is capable of producing either a JPEG or PNG using UIImageJPEGRepresentation or UIImagePNGRepresentation. The format of the original image is only important when the UIImage is being created from it (decides which CFImage provider to load it).

如果确保将其保存为原始格式对您的应用或算法很重要,我认为您必须保留该信息以在编写时使用.我仔细检查过,找不到任何宣传它来自什么格式的东西.

If it's important to your app or algorithm to ensure you save it as the original format, I think you have to maintain that info to use when your writing it. I double checked and couldn't find anything that advertised what format it came from.

您是要通过 UIImageView 更改图像还是在您的体验中图像保持不变?如果它没有改变并且你只需要 UI 来选择图像,你能得到文件字节吗?例如,如果您显示图像只是为了选择,然后将它们上传到服务器或其他东西,UIImage 只能用于查看和选择,并且如果您的数据结构记住它来自哪个文件,你可以从磁盘上取回这些位并上传.如果您在视图中更改文件,则您或用户需要决定图像的输出(如果是 jpeg 质量).

Are you going to change the image through UIImageView or does the image stay unchanged in your experience? If it's not changed and you just need the UI to select the image, could you get to file bytes? For example, if you showed the images just to select and then you upload them to a server or something, the UIImage could only be for viewing and selecting and if your data structure remembers which file it came from, you could get the bits back off disk and upload. If your changing the file in the view, then you or the user needs to decide the output (and if jpeg the quality) of the image.

这篇关于检测 UIImage 是 PNG 还是 JPEG?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆