同じ画像の領域にアルファ プロパティを追加することは可能ですか? 例えば
1 に答える
1
最も簡単な解決策は、画像を分割し、アルファを 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 に答える