//图片根据不同的大小进行压缩
+(UIImage*)saveBitImage:(UIImage*)Image{
NSData* dataImage =
UIImageJPEGRepresentation(Image,1.0);
NSLog(@"imagesize:%d",dataImage.length/1024);
NSUInteger sizeOrigin = [dataImage
length];
NSUInteger sizesizeOriginKB = sizeOrigin /
1024;
float a =
250;
float b = (float)sizesizeOriginKB;
if (sizesizeOriginKB >
500)
{
a =
250;
}
else
if(sizesizeOriginKB >
300)
{
a =
150;
}
else
if(sizesizeOriginKB >
200)
{
a =
120;
}
else
if(sizesizeOriginKB >
100)
{
a =
60;
}
float q =
sqrt(a/b);
//
图片大于500k要先进行压缩
if (sizesizeOriginKB >
100)
{
NSLog(@"q:%f",q);
CGSize sizeImage = [Image
size];
CGFloat iwidthSmall = sizeImage.width * q;
CGFloat iheightSmall = sizeImage.height * q;
CGSize itemSizeSmall =
CGSizeMake(iwidthSmall, iheightSmall);
UIGraphicsBeginImageContext(itemSizeSmall);
CGRect imageRectSmall =
CGRectMake(0.0f,
0.0f, itemSizeSmall.width+2, itemSizeSmall.height+2);
//长和宽都增加2个像素,防止有些图片绘制旁边出现白线
[Image
drawInRect:imageRectSmall];
UIImage *SmallImage =
UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSData *dataImageSend =
UIImageJPEGRepresentation(SmallImage,0.85);
dataImage = dataImageSend;
}
NSLog(@"压缩bit
后:%d",[dataImage length]/1024);
return [UIImage
imageWithData:dataImage];
}
//根据指定的大小进行等比例压缩
//图片压缩指定的宽高
+(UIImage*)saveBitImage:(UIImage*)Image WithWidth:(CGFloat)width andHeight:(CGFloat)
height {
NSData* dataImage =
UIImageJPEGRepresentation(Image,1.0);
NSLog(@"imagesize:%d",dataImage.length/1024);
CGSize sizeImage = [Image
size];
CGFloat scaleWidth = width;
CGFloat scaleHeight = height;
CGFloat wRate = width/sizeImage.width;
CGFloat hRate = height/sizeImage.height;
CGFloat scaleRate =
0.0;
if (wRate > hRate)
{
scaleRate = wRate;
}
else
{
scaleRate = hRate;
}
scaleWidth = sizeImage.width*scaleRate;
scaleHeight = sizeImage.height*scaleRate;
CGSize itemSizeSmall =
CGSizeMake(scaleWidth, scaleHeight);
UIGraphicsBeginImageContext(itemSizeSmall);
CGRect imageRectSmall =
CGRectMake(0,0, itemSizeSmall.width+2, itemSizeSmall.height+2);
//长和宽都增加2个像素,防止有些图片绘制旁边出现白线
[Image
drawInRect:imageRectSmall];
UIImage *scaleImage =
UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return scaleImage;
}
//图片裁剪
//截取指定大小的图片
-(UIImage*)getSubImage:(CGRect)rect withImage:(UIImage*)image
{
CGImageRef subImageRef =
CGImageCreateWithImageInRect(image.CGImage, rect);
CGRect smallBounds =
CGRectMake(0,0,
CGImageGetWidth(subImageRef),
CGImageGetHeight(subImageRef));
UIGraphicsBeginImageContext(smallBounds.size);
CGContextRef context =
UIGraphicsGetCurrentContext();
CGContextDrawImage(context, smallBounds, subImageRef);
UIImage* smallImage = [UIImage
imageWithCGImage:subImageRef];
UIGraphicsEndImageContext();
return smallImage;
}