我试图通过在普通电池图像上绘制另一个基于当前电池电量的裁剪图像来实现电池电量效果。
目前我可以更改空电池图像的颜色,但我不知道如何裁剪新的,并将其放在原件的顶部。
我找到了一些关于如何裁剪的有用链接,但是每个链接都是从图像的左上角裁剪的。我想以左下角为起点并根据当前级别设置高度。
此外,是否可以将裁剪后的图像组合或放置在原始图像之上?
这是我的原始图像。
...以及我想要实现的目标
目前我正在尝试这段代码,
int width = emptyBm.size.width;
int height = fullBm.size.height * level / 100;
UIImage *image = [UIImage imageNamed:@"battery_icon"];
UIImage *image2 = [UIImage imageNamed:@"battery_icon_full"];
CGRect rect = CGRectMake(0, image.size.height-height, width, height);
CGImageRef imageRef = CGImageCreateWithImageInRect([image2 CGImage], rect);
CGImageRef actualMask = CGImageMaskCreate(CGImageGetWidth([image CGImage]),
CGImageGetHeight([image CGImage]),
CGImageGetBitsPerComponent([image CGImage]),
CGImageGetBitsPerPixel([image CGImage]),
CGImageGetBytesPerRow([image CGImage]),
CGImageGetDataProvider([image CGImage]), NULL, false);
CGImageRef masked = CGImageCreateWithMask(imageRef, actualMask);
batteryBackground.image = [UIImage imageWithCGImage:masked];
但是,因为我使用CGImageCreateWithImageInRect
的是裁剪部分被拉伸