Có bất kỳ API hình ảnh cắt xén nào cho mục tiêu C để cắt hình ảnh động trong dự án Xcode không? Vui lòng cung cấp một số thủ thuật hoặc kỹ thuật làm thế nào tôi có thể cắt hình ảnh camera trong iPhone.API cắt hình ảnh cho iOS
Trả lời
Bạn có thể sử dụng khung CoreGraphics để cắt ảnh động. Đây là một phần mã ví dụ về hình ảnh động. Tôi hy vọng điều này sẽ hữu ích cho bạn.
- (void)drawMaskLineSegmentTo:(CGPoint)ptTo withMaskWidth:(CGFloat)maskWidth inContext:(NXMaskDrawContext)context{
if (context == nil)
return;
if (context.count <= 0){
[context addObject:[NSValue valueWithCGPoint:ptTo]];
return;
}
CGPoint ptFrom = [context.lastObject CGPointValue];
UIGraphicsBeginImageContext(self.maskImage.size);
[self.maskImage drawInRect:CGRectMake(0, 0, self.maskImage.size.width, self.maskImage.size.height)];
CGContextRef graphicsContext = UIGraphicsGetCurrentContext();
CGContextSetBlendMode(graphicsContext, kCGBlendModeCopy);
CGContextSetRGBStrokeColor(graphicsContext, 1, 1, 1, 1);
CGContextSetLineWidth(graphicsContext, maskWidth);
CGContextSetLineCap(graphicsContext, kCGLineCapRound);
CGContextMoveToPoint(graphicsContext, ptFrom.x, ptFrom.y);
CGContextAddLineToPoint(graphicsContext, ptTo.x, ptTo.y);
CGContextStrokePath(graphicsContext);
self.maskImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIGraphicsBeginImageContext(self.displayableMaskImage.size);
[self.displayableMaskImage drawInRect:CGRectMake(0, 0, self.displayableMaskImage.size.width, self.displayableMaskImage.size.height)];
graphicsContext = UIGraphicsGetCurrentContext();
CGContextSetBlendMode(graphicsContext, kCGBlendModeCopy);
CGContextSetStrokeColorWithColor(graphicsContext, self.displayableMaskColor.CGColor);
CGContextSetLineWidth(graphicsContext, maskWidth);
CGContextSetLineCap(graphicsContext, kCGLineCapRound);
CGContextMoveToPoint(graphicsContext, ptFrom.x, ptFrom.y);
CGContextAddLineToPoint(graphicsContext, ptTo.x, ptTo.y);
CGContextStrokePath(graphicsContext);
self.displayableMaskImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[context addObject:[NSValue valueWithCGPoint:ptTo]];
}
Bạn có thể sử dụng bên dưới mã đơn giản để cắt hình ảnh. Bạn phải vượt qua hình ảnh và CGRect là khu vực cắt xén. Ở đây, tôi cắt hình ảnh để tôi lấy phần trung tâm của hình ảnh gốc và hình ảnh trả về là hình vuông.
// Returns largest possible centered cropped image.
- (UIImage *)centerCropImage:(UIImage *)image
{
// Use smallest side length as crop square length
CGFloat squareLength = MIN(image.size.width, image.size.height);
// Center the crop area
CGRect clippedRect = CGRectMake((image.size.width - squareLength)/2, (image.size.height - squareLength)/2, squareLength, squareLength);
// Crop logic
CGImageRef imageRef = CGImageCreateWithImageInRect([image CGImage], clippedRect);
UIImage * croppedImage = [UIImage imageWithCGImage:imageRef];
CGImageRelease(imageRef);
return croppedImage;
}
Xcode 5, iOS 7, và ví dụ màn hình 4-inch: Dưới đây là một ví dụ mã nguồn mở của một SimpleImageCropEditor (Project Zip and Source Code Example. Bạn có thể tải Trình chỉnh sửa Crop hình ảnh dưới dạng Bộ điều khiển chế độ xem và sử dụng lại. Xem mã và vui lòng để lại các nhận xét mang tính xây dựng liên quan nếu mã ví dụ này trả lời câu hỏi "Image Cropping API for iOS".
Chứng minh, ví dụ là mã Mục tiêu-C, sử dụng UIImagePickerController, @protocol, UIActionSheet, UIScrollView, UINavigationController, MFMailComposeViewController và UIGestureRecognizer.
EDIT - Swift Version
let imageView = UIImageView(image: image)
imageView.contentMode = .scaleAspectFill
imageView.clipsToBounds = true
Tất cả các giải pháp này dường như khá phức tạp và nhiều người trong số họ thực sự làm suy giảm chất lượng hình ảnh. Bạn có thể làm đơn giản hơn nhiều bằng cách sử dụng phương thức của hộp.
Objective-C
self.imageView.contentMode = UIViewContentModeScaleAspectFill;
[self.imageView setClipsToBounds:YES];
[self.imageView setImage:img];
này sẽ cắt hình ảnh của bạn dựa trên các kích thước bạn đã đặt cho UIImageView
của bạn (tôi đã gọi tôi imageView
đây).
Nó đơn giản và hoạt động tốt hơn nhiều so với các giải pháp khác.
Tôi nghĩ rằng câu trả lời của bạn chỉ đơn giản là thay đổi kích thước hình ảnh tạm thời trong giới hạn của 'UIImageView'. Nếu bạn chỉ quan tâm đến việc hiển thị hình ảnh, điều này sẽ hoạt động. Tuy nhiên, nếu, ví dụ, bạn cần sửa đổi hình ảnh trước khi tải lên máy chủ, cách tiếp cận này sẽ không hoạt động trong trường hợp đó. – Andrew
Đúng, nhưng cô ấy đang tìm kiếm một cách "tạo hình ảnh động", vì vậy đề xuất của tôi là hoàn toàn tốt đẹp ở đây. – sf89
- 1. Máy ảnh UIImagePickerController tùy chỉnh iOS Cắt thành hình vuông
- 2. Hình ảnh cắt ảnh Kinect
- 3. Cắt ảnh Mat trong OpenCV 2.4.3 (iOS)
- 4. iOS Facebook Graph API hồ sơ liên kết hình ảnh
- 5. Cắt xén hình ảnh html5
- 6. iOS - hình ảnh tải lên với ImageShack JSON API
- 7. Cắt xén hình ảnh GWT
- 8. CITemperatureAndTint cho hình ảnh trong iOS
- 9. iOS - hình ảnh tùy chỉnh cho UISlider
- 10. Phân đoạn hình ảnh cho iOS
- 11. Cắt ảnh bằng CGImageCreateWithImageInRect
- 12. Facebook API dành cho iOS, Bắt bạn bè hình ảnh hồ sơ cá nhân
- 13. Làm thế nào để loại bỏ xén tỷ lệ hình vuông cho hình ảnh trên IOS
- 14. Google hình ảnh api
- 15. Cắt xén hình ảnh như facebook
- 16. cắt dán hình ảnh trong PHP
- 17. chọn một phần của hình ảnh (cắt)
- 18. Ứng dụng Django cho hình ảnh cắt bằng công cụ cắt
- 19. iOS: Cách cắt hình ảnh thành các phần hữu ích (xóa đường viền trong suốt)
- 20. Không thể cắt hình ảnh bằng mini_magick
- 21. Hình ảnh cắt xén phía máy khách
- 22. Cắt hình ảnh bằng PIL trong python
- 23. IOS hình ảnh phóng cỡ
- 24. Hình ảnh rađa trên Google Maps API
- 25. Cắt âm thanh với iOS
- 26. Geofence API cho iOS 5
- 27. Cắt hình tròn ra khỏi hình ảnh bằng RMagick
- 28. Jcrop không cắt xén đúng những hình ảnh
- 29. Cách cắt hình chữ nhật từ hình ảnh trong android
- 30. Cắt một hình elip từ một hình ảnh
Tuyệt vời! Hoạt động như một khoe trên iOS 7. Cảm ơn! –