这个问题需要很多时间,但我的问题却完全不同。
我从 Json (网络服务)获取图片。它" http:/address/upload/book_icon/4353988696.jpg"。
我需要在imageview中显示 85 * 130尺寸的图像。但大多数图像都有更大的尺寸。
例如:如果图像的大小为1000 * 650,那么我如何在85 * 130中设置此图像而不下载它。
为了更好地显示我正在使用的图像" SDWebImageManagerDelegate"但需要以速度裁剪图像并在imageview中显示并下载。
我到目前为止......
NSString *stringURL = [NSString stringWithFormat:@"%@",[imageURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
UIImageView *imgView = [[UIImageView alloc] initWithFrame:CGRectMake(0,0, 85,130)];
[imgView setBackgroundColor:[UIColor whiteColor]];
imgView.tag = i;
但由于裁剪图像而没有在线下用于获取图像...
[imgView setImageWithURL:[NSURL URLWithString:stringURL] placeholderImage:[UIImage imageNamed:@"no_image.png"]];
并用它来获取图像......
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:stringURL]];
UIImage *image123temp = [UIImage imageWithData:data];
UIImage *objimgtemp = [self imageCrop:image123temp];
imgView.image = objimgtemp;
使用此方法裁剪图像
-(UIImage*)imageCrop:(UIImage*)original
{
UIImage *ret = nil;
// This calculates the crop area.
float originalWidth = original.size.width;
float originalHeight = original.size.height;
float edge = fminf(originalWidth, originalHeight);
float posX = (originalWidth - edge) / 2.0f;
float posY = (originalHeight - edge) / 2.0f;
CGRect cropSquare = CGRectMake(posX, posY,
edge, edge);
// This performs the image cropping.
CGImageRef imageRef = CGImageCreateWithImageInRect([original CGImage], cropSquare);
ret = [UIImage imageWithCGImage:imageRef
scale:original.scale
orientation:original.imageOrientation];
CGImageRelease(imageRef);
NSLog(@"ret.......... %f == %f",ret.size.width,ret.size.height);
return ret;
}
如何快速获得裁剪图像?
任何链接,教程,建议,代码都会有很大的帮助......
答案 0 :(得分:0)
始终按原样下载位于远程URL的图像。在远程服务器上创建图像的缩略图版本的任何内容,或者在客户端请求时自动调整图像或自动切换图像 是服务器端进程而不是客户端进程。
现在你要做的是创建一个简单的服务器端webrequest(用PHP或其他语言),它返回一个 当然尺寸较小的裁剪图像。 然后你会在客户端做这样的事情:
NSString *stringURL = [NSString stringWithFormat:@"http://www.example.com/getCroppedImage?width=%f&height=%f&imagename=%@", width, height, someImageName];
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:stringURL]];