Tôi đang tạo ảnh ghép kết hợp với các yếu tố từ các hình ảnh khác. Dưới đây là một số nghệ thuật ASCII để giải thích những gì tôi đang làm:Nhiều đường cắt bớt để tạo ảnh ghép trong đồ họa lõi
Given images A, B and C,
AAA, BBB, CCC
AAA, BBB, CCC
AAA, BBB, CCC
I take part of A, part of B and part of C as columns:
Axx, xBx, xxC
Axx, xBx, xxC
Axx, xBx, xxC
...and combine them in one image like this:
ABC
ABC
ABC
where the first 1/3rd of the image is a colum of A's pic, the middle is a column of B's pic and the last is a column of C's pic.
Tôi có một số mã được viết nhưng nó chỉ hiển thị cột đầu tiên và không phải là phần còn lại ... Tôi nghĩ rằng tôi phải xóa clipping bằng cách nào đó, bt Tôi không chắc chắn làm thế nào để làm điều đó hoặc cho dù điều này thậm chí là cách tiếp cận tốt nhất.
+ (UIImage *)collageWithSize:(NSInteger)size fromImages:(NSArray *)images {
NSMutableArray *selectedImages = [NSMutableArray array];
[selectedImages addObjectsFromArray:images];
// use the selectedImages for generating the thumbnail
float columnWidth = (float)size/(float)[selectedImages count];
//create a context to do our clipping in
UIGraphicsBeginImageContext(CGSizeMake(size, size));
CGContextRef currentContext = UIGraphicsGetCurrentContext();
for (int i = 0; i < [selectedImages count]; i++) {
// get the current image
UIImage *image = [selectedImages objectAtIndex:i];
//create a rect with the size we want to crop the image to
CGRect clippedRect = CGRectMake(i*columnWidth, 0, columnWidth, size);
CGContextClipToRect(currentContext, clippedRect);
//create a rect equivalent to the full size of the image
CGRect drawRect = CGRectMake(0, 0, size, size);
//draw the image to our clipped context using our offset rect
CGContextDrawImage(currentContext, drawRect, image.CGImage);
}
//pull the image from our cropped context
UIImage *collage = UIGraphicsGetImageFromCurrentImageContext();
//pop the context to get back to the default
UIGraphicsEndImageContext();
//Note: this is autoreleased
return collage;
}
Tôi đang làm gì sai?
PS hình ảnh cũng được vẽ lộn ngược.
' CGContextSaveGState' và 'CGContextRestoreGState' là những gì tôi đang tìm kiếm. Cảm ơn! –