jpg文件显示在chrome中但不在safari中显示

时间:2017-03-27 03:11:10

标签: ios objective-c image

我从我的ip cam下载了一个jpg文件。

但该文件似乎已损坏或其格式有所不同。

我无法使用safari或preview.app(macOS)打开它,

但它以chrome显示。

我真正想做的是以编程方式下载并在UIImageView中显示,但图像数据总是为零。

我对图像格式知之甚少,问题很奇怪,

所以,如果你愿意帮助我,看看那张照片是什么,

图片:broken jpg

感谢您的时间!

更新2017/03/30:

还没有找到解决运动jpeg帧的答案。

从我用Google搜索,差异是DHT,但不知道如何将其添加到框架中。

据我所知,很少有像libjpeg-turbo,ffmpeg这样的第三方库,但还没有找到一个例子。

如果你之前已经用C或Objective-C写过,希望你能帮助我!

真的想要并且需要知道如何!

谢谢!

2 个答案:

答案 0 :(得分:1)

您的文件是Motion JPEG文件,而不是JPEG图像......

这解释了为什么浏览器能够打开它,你可以通过查看编解码器信息在vlc中检查:

  

动态JPEG视频(MJPG)

或甚至通过ffmpeg -i MeQ6p.jpg

  

Stream#0:0:视频:mjpeg,yuvj422p(pc,bt470bg / unknown / unknown),640x480,25 tbr,25 tbn,25 tbc

所以你的问题只在于你的文件,这可以通过设置你的ip-cam来保存静止的JPEG图像而不是MJPEG流来修复。

答案 1 :(得分:0)

我刚试过,可以看到数据从你发布的URL中获取并获得了大约17750字节。

let imageURL = NSURL(string : "https://i.stack.imgur.com/MeQ6p.jpg")
 let imageData = NSData(contentsOfURL: imageURLFromParse! as NSURL)