[英]Create UIImage of a specific size
如何從頭開始創建 UIImage。 具體來說,我想創建一個大小為 320x50 的 UIImage。 然后,我希望能夠在該圖像上繪制特定顏色的多邊形。
這是您在 iphone 中拼接圖片的答案
根據我的經驗,我可以給你一些提示:
比例尺
- (UIImage *)scaleImage:(UIImage *)image toScale:(float)scaleSize { UIGraphicsBeginImageContext(CGSizeMake(image.size.width*scaleSize,image.size.height*scaleSize); [image drawInRect:CGRectMake(0, 0, image.size.width * scaleSize, image.size.height *scaleSize)]; UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return scaledImage; }
調整大小
- (UIImage *)reSizeImage:(UIImage *)image toSize:(CGSize)reSize { UIGraphicsBeginImageContext(CGSizeMake(reSize.width, reSize.height)); [image drawInRect:CGRectMake(0, 0, reSize.width, reSize.height)]; UIImage *reSizeImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return reSizeImage; }
處理特定視圖
你必須先導入 QuzrtzCore.framework
-(UIImage*)captureView:(UIView *)theView { CGRect rect = theView.frame; UIGraphicsBeginImageContext(rect.size); CGContextRef context = UIGraphicsGetCurrentContext(); [theView.layer renderInContext:context]; UIImage *img = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return img; }
處理范圍表單圖像
CGRect captureRect = yourRect CGRect viewRect = self.view.frame; UIImage *viewImg; UIImage *captureImg; UIGraphicsBeginImageContext(viewRect.size); CGContextRef context = UIGraphicsGetCurrentContext(); [self.view.layer renderInContext:context]; viewImg = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); captureImg = [UIImage imageWithCGImage:CGImageCreateWithImageInRect(viewImg.CGImage, captureRect)];
保存圖像
保存在應用程序中
NSString *path = [[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"] stringByAppendingPathComponent:@"image.png"]; [UIImagePNGRepresentation(image) writeToFile:path atomically:YES];
保存到相冊
CGImageRef screen = UIGetScreenImage(); UIImage* image = [UIImage imageWithCGImage:screen]; CGImageRelease(screen); UIImageWriteToSavedPhotosAlbum(image, self, nil, nil);
你可以:
CGBitmapContext
。CGBitmapContextCreateImage
的結果創建一個UIImage
我把我的答案留在這里,以防萬一這對將來有幫助。 此答案在 iOS10+ 上有效
extension UIImage {
static func image(with size: CGSize) -> UIImage {
UIGraphicsImageRenderer(size: size)
.image { $0.fill(CGRect(origin: .zero, size: size)) }
}
}
所以你可以這樣做: UIImage.image(with: CGSize(width: 320, height: 50))
我的回答是受此啟發: https : //stackoverflow.com/a/48441178/2000162
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.