if(!image)
{
// image = [UIImage imageNamed:@"loadingYDBig.jpg"];
image = [UIImage imageNamed:@"vs_sdimage"];
image = [self addText:image text:@"视图正在加载中。。。" numText:[NSString stringWithFormat:@"%d",pageIndex + 1]];
[imageView.mp_imageView setImage:image];
self.isImageSc = NO;
self.isImageLoad = NO;
}
else
{
//无水印添加水印
if (MD.isWebp == NO) {
image = [self addImageLogo:image text:[UIImage imageNamed:@"logo"]];
// image = [self addImage:image addMsakImage:[UIImage imageNamed:@"logo"]];
}
[imageView.mp_imageView setImage:image];
self.isImageLoad = YES;
self.isImageSc = YES;
}
/**
加图片水印
@param img 需要加logo图片的图片
@param logo logo图片
@returns 加好logo的图片
*/
-(UIImage *)addImageLogo:(UIImage *)img text:(UIImage *)logo
{
//get image width and height
int w = img.size.width;
int h = img.size.height;
int logoWidth = logo.size.width * 0.15;
int logoHeight = logo.size.height * 0.15;
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
//create a graphic context with CGBitmapContextCreate
CGContextRef context = CGBitmapContextCreate(NULL, w, h, 8, 4 * w, colorSpace, kCGImageAlphaPremultipliedFirst);
//开始画图
[logo drawInRect:CGRectMake(w-logoWidth - 50, 80, logoWidth, logoHeight) blendMode:kCGBlendModeOverlay alpha:0.73f];//0.73透明度
CGContextDrawImage(context, CGRectMake(0, 0, w, h), img.CGImage);
//-50(x),80(y)位置
CGContextDrawImage(context, CGRectMake(w-logoWidth - 50, 80, logoWidth, logoHeight), [logo CGImage]);
//画图完毕 拿到CGImage类型的image
CGImageRef imageMasked = CGBitmapContextCreateImage(context);
//释放画图空间等
CGContextRelease(context);
CGColorSpaceRelease(colorSpace);
return [UIImage imageWithCGImage:imageMasked];
// CGContextDrawImage(contextRef, CGRectMake(100, 50, 200, 80), [smallImg CGImage]);
}
//[transparentimg drawInRect:CGRectMake(0, useImage.size.height-transparentimg.size.height, transparentimg.size.width, transparentimg.size.height) blendMode:kCGBlendModeOverlay alpha:0.4f];
/**
加半透明水印
@param useImage 需要加水印的图片
@param addImage1 水印
@returns 加好水印的图片
*/
- (UIImage *)addImage:(UIImage *)useImage addMsakImage:(UIImage *)maskImage
{
UIGraphicsBeginImageContext(useImage.size);
[useImage drawInRect:CGRectMake(0, 0, useImage.size.width, useImage.size.height)];
// [addImage1 drawInRect:CGRectMake(0, useImage.size.height-addImage1.size.height, addImage1.size.width, addImage1.size.height)];
//四个参数为水印图片的位置
[maskImage drawInRect:CGRectMake(useImage.size.width - 110, useImage.size.height-25, 100, 25)];
UIImage *resultingImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return resultingImage;
}
/**
加文字随意
@param img 需要加文字的图片
@param text1 text2 文字描述
@returns 加好文字的图片
*/
-(UIImage *)addText:(UIImage *)img text:(NSString *)text1 numText:(NSString *)text2
{
/注:此为后来更改,用于显示中文。
CGSize size = CGSizeMake(img.size.width, img.size.height); //设置上下文(画布)大小
UIGraphicsBeginImageContext(size); //创建一个基于位图的上下文(context),并将其设置为当前上下文
CGContextRef contextRef = UIGraphicsGetCurrentContext(); //获取当前上下文
CGContextTranslateCTM(contextRef, 0, img.size.height); //画布的高度
CGContextScaleCTM(contextRef, 1.0, -1.0); //画布翻转
CGContextDrawImage(contextRef, CGRectMake(0, 0, img.size.width, img.size.height), [img CGImage]); //在上下文种画当前图片
[RGB(69, 68, 68) set]; //上下文种的文字属性
CGContextTranslateCTM(contextRef, 0, img.size.height);
CGContextScaleCTM(contextRef, 1.0, -1.0);
UIFont *font = [UIFont boldSystemFontOfSize:30];
// [text1 drawInRect:CGRectMake(img.size.width/2 - 150 , img.size.height/2 + 50, 300, 80) withFont:font]; //此处设置文字显示的位置
[text1 drawInRect:CGRectMake(img.size.width/2 - 150 , img.size.height/2 + 50, 300, 100) withFont:font lineBreakMode:NSLineBreakByWordWrapping alignment:NSTextAlignmentCenter];
UIFont *font2 = [UIFont systemFontOfSize:150];
[text2 drawInRect:CGRectMake(img.size.width/2 - 150, img.size.height/2 - 150, 300, 300) withFont:font2 lineBreakMode:NSLineBreakByWordWrapping alignment:NSTextAlignmentCenter];
UIImage *targetimg =UIGraphicsGetImageFromCurrentImageContext(); //从当前上下文种获取图片
UIGraphicsEndImageContext(); //移除栈顶的基于当前位图的图形上下文。
return targetimg;
}