我需要修剪过的CGImage。我有一个图像,它的某些颜色周围有空白空间(alpha = 0),需要对其进行裁剪,以获得仅可见颜色的大小。
谢谢。
发布于 2011-02-10 23:45:24
有三种方法可以做到这点:
1)使用photoshop (或选择的图像编辑器)来编辑图像-我假设你不能这样做,这是一个太明显的答案!
2)忽略它--为什么不直接忽略它,画出它的全尺寸图像呢?它是透明的,所以用户永远不会注意到。
3)编写一些代码,遍历图像中的每个像素,直到它到达alpha值> 0的像素。这应该会给出要从顶部修剪的行数。然而,这会减慢你的UI,所以你可能想在后台线程上做。
例如:
// 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设置为中心,并让它为您进行修剪:)
https://stackoverflow.com/questions/4959062
复制相似问题