如何在下载时在UIImageView中显示渐进式JPEG?

Grz*_*icz 8 png jpeg progressive-download uiimageview ios

从网上下载图像并在UIImageView中显示它是相当容易的.但是,这需要在向用户显示图像之前完全下载图像,从而完全击败渐进式JPEG(和PNG)图像.

如何在传输过程中渲染部分下载的图像?我会想象SDK有一些回调函数可以更新图像,但我找不到这样的功能.使用当前的iOS SDK是否可行?

Rap*_*sso 10

我知道这篇文章有大约1年的时间,但万一有人在寻找它,有一个名为NYXImagesKit的项目可以满足您的需求.

它有一个名为NYXProgressiveImageView的子类,是它的子类UIImageView.

你所要做的就是:

NYXProgressiveImageView * imgv = [[NYXProgressiveImageView alloc] init];
imgv.frame = CGRectMake(0, 0, 320, 480);
[imgv loadImageAtURL:[NSURL URLWithString:@"http://yourimage"]];
[self.view addSubview:imgv];
[imgv release];
Run Code Online (Sandbox Code Playgroud)

此外,一个很好的选择是将图像保存为interlaced低质量加载并通过下载进行改进.如果图像没有交错,则从上到下加载.


ver*_*ind 0

您是否尝试在 didReceiveData 被称为 \xe2\x80\xa6 时部分渲染 UIImage ?类似于 \xe2\x80\xa6

\n\n
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data\n{\n    //TODO: add some error handling in case the image could not be created\n    UIImage *img=[UIImage imageWithData:data];\n    if (img) {\n        self.imageView.image=img;\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n