是否可以在同一图像的区域上添加 alpha 属性?例如
问问题
195 次
1 回答
1
最简单的解决方案是将图像分开并将 alpha 保存为 png 的一部分,然后将图像视图组织为彼此齐平。
否则,我在常规视图中编写此快速代码,对图像执行相同操作(我对 Core Graphics 比较陌生,所以我确信有更好的方法来做到这一点 - 另外,我的示例图像是并排的):
-(void) drawRect {
// GET THE CONTEXT, THEN FLIP THE COORDS (my view is 189 ponts tall)
CGContextRef context = UIGraphicsGetCurrentContext();
CGAffineTransform flip = CGAffineTransformMake(1, 0, 0, -1, 0, 189);
CGContextConcatCTM(context, flip);
// GET THE IMAGE REF
UIImage *targetImage = [UIImage imageNamed:@"test.jpg"];
CGImageRef imageRef = targetImage.CGImage;
// SET THE COORDS
CGRect imageCoords = CGRectMake(0, 0, 116, 189);
CGRect imageCoordsTwo = CGRectMake(116, 0, 117, 189);
// CUT UP THE IMAGE INTO TWO IMAGES
CGImageRef firstImage = CGImageCreateWithImageInRect(imageRef, imageCoords);
CGImageRef secondImage = CGImageCreateWithImageInRect(imageRef, imageCoordsTwo);
// DRAW FIRST IMAGE, SAVE THE STATE, THEN SET THE TRANSPARENCY AMOUNT
CGContextDrawImage(context, imageCoords, firstImage);
CGContextSaveGState(context);
CGContextSetAlpha(context, .4f);
// DRAW SECOND IMAGE, RESTORE THE STATE
CGContextDrawImage(context, imageCoordsTwo, secondImage);
CGContextRestoreGState(context);
// TIDY UP
CGImageRelease(firstImage);
CGImageRelease(secondImage);
}
于 2012-10-31T05:15:54.803 回答