我面临的一般问题是:
我有一个可拉伸的 50x50 PNG。我将它拉伸到 300x100。我想从下图中的拉伸图像 A、B 和 C 中截取三个大小为 100x100 的 UIImage:
我正在尝试这样做:
// stretchedImage is the 50x50 UIImage, abcImageView is the 300x100 UIImageView
UIImage *stretchedImage = [abcImageView.image stretchableImageWithLeftCapWidth:25 topCapHeight:25];
CGImageRef image = CGImageCreateWithImageInRect(stretchedImage.CGImage, bButton.frame);
UIImage *result = [UIImage imageWithCGImage:image];
[bButton setBackgroundImage:result forState:UIControlStateSelected];
CGImageRelease(image);
我正在尝试使用 CGImageCreateWithImageInRect 裁剪中间 100(“B”),但这不正确,因为stretchedImage 是 50x50,而不是 300x100。如何从 300x100 图像中裁剪?如果原始图像是 300x100 就没有问题,但是我会失去可拉伸图像的优势。
我想进一步概括这个问题,问题很简单:如果你将图像缩放或拉伸到更大的图像视图,你如何获得缩放/拉伸的图像?
我想应用解决方案的特定任务的背景(如果您能提出替代解决方案):
我正在尝试实现一个类似于您在本机 iPhone 呼叫应用程序中看到的 UI:一个包含静音、扬声器、保持等按钮的板。其中一些是具有不同背景颜色的切换类型按钮选定的状态。
我有两个用于整个盘子的图形,用于非选定和选定状态。我将两个图像都拉伸到所需的大小。对于处于选定状态的按钮,我想获得一块拉伸的选定图形。