我有一個UIImage是從一個透明的PNG(500px乘500px)讀取。在圖像的某個地方,有一張我想要裁剪並保存爲獨立UIImage的圖片。我還想根據新裁剪的矩形左側和頂部有多少透明像素來存儲X和Y座標。核心圖形 - 如何從UIImage中裁剪非透明像素?
我能夠使用此代碼裁剪圖像:
- (UIImage *)cropImage:(UIImage *)image atRect:(CGRect)rect
{
double scale = image.scale;
CGRect scaledRect = CGRectMake(rect.origin.x*scale,rect.origin.y*scale,rect.size.width*scale,rect.size.height*scale);
CGImageRef imageRef = CGImageCreateWithImageInRect([image CGImage], scaledRect);
UIImage *cropped = [UIImage imageWithCGImage:imageRef scale:scale orientation:image.imageOrientation];
CGImageRelease(imageRef);
return cropped;
}
裏面居然切斷透明像素的頂部和左:S(這將是巨大的,如果我能對作物的像素正確和底部!)。然後它將圖像的其餘部分調整爲我指定的矩形。不幸的是,雖然我需要剪切一張位於圖像中間的圖片,但我需要的尺寸能夠變爲動態。
現在已經掙扎了好幾個小時了。有任何想法嗎?
你描述的不是CGImageCreateWithImageInRect'是如何'記錄工作,是(根據文檔)功能不能擴展任何東西。你應該把這些代碼分解成一個最小的測試應用程序,如果你仍然可以重現這個問題,請[提交bug](https://bugreport.apple.com/)。 –