我需要修剪一下CGImage。我的图像在某些颜色周围有空白区域(alpha = 0),需要修剪它以获得仅可见颜色的大小。
感谢。
答案 0 :(得分:0)
有三种方法可以做到这一点:
1)使用photoshop(或选择的图像编辑器)编辑图像 - 我认为你不能这样做,这是一个非常明显的答案!
2)忽略它 - 为什么不忽略它,绘制它的全尺寸图像?它是透明的,因此用户永远不会注意到。
3)编写一些代码,这些代码遍历图像中的每个像素,直到它到达具有α值> 1的像素。这应该给你从顶部修剪的行数。但是,这会降低您的UI速度,因此您可能希望在后台线程上执行此操作。
e.g。
// To get the number of transparent rows at the top of the image
// Sorry this code is so ugly
uint32 *p = start_of_image;
while ( 0 == *p & 0x000000ff && p < end_of_image_data) ++p;
uint number_of_white_rows_at_top = (p - start_of_image) / width_of_image;
当您知道图像周围的透明空间量时,您可以使用UIImageView绘制它,将renderMode设置为居中并让它为您进行修剪:)