Я пытаюсь объединить 2 UIImageViews
и сохранить их как 1. Самое верхнее изображение - это статическая «рамка», а нижнее изображение - вращаемое / масштабируемое.
Моя проблема заключается в том, что фотография должна быть сохранена как 640 x 960
, однако фактический вид, на котором находятся 2 изображения, равен 320 x 480
(поэтому он правильно отображается на экране пользователя). Когда эти 2 изображения объединены, они сохраняются в представлении 640 x 960
, однако сами два изображения объединяются в 320 x 480
(как видно на примере изображения ниже).
Вот код, который я сейчас использую, чтобы получить неверные результаты.
CGSize deviceSpec;
if ( IDIOM == IPAD ) { deviceSpec =CGSizeMake(768,1024); } else { deviceSpec =CGSizeMake(640,960); }
UIGraphicsBeginImageContext( deviceSpec );
UIView * rendered = [[UIView alloc] init];
[[rendered layer] setFrame:CGRectMake(0,0,deviceSpec.width,deviceSpec.height)];
[[rendered layer] addSublayer:[self.view layer]];
[[rendered layer] renderInContext:UIGraphicsGetCurrentContext()];
UIImage * draft = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
AssetsLibrary
Следует также упомянуть, что я сохраняю изображение, используя следующее:
ALAssetsLibrary * library = [[[ALAssetsLibrary alloc] init] autorelease];
[library writeImageToSavedPhotosAlbum: draft.CGImage orientation:ALAssetOrientationUp
completionBlock: ^(NSURL *assetURL, NSError *error)
{
if (error) {
NSLog(@"ALAssetLibrary error - %@", error);
} else {
NSLog(@"Image saved: %@", assetURL);
}
}];
Выход
Обратите внимание, что вся белая область на самом деле 640 x 960
, а 2 изображения 320 x 480
.
![enter image description here](https://i.stack.imgur.com/Rof6w.png)
Примечание: фактическое изображение здесь - 640x960 (вся область), где фактическое изображение (фотография) - 320x480, что является фактическим размером рамки исходного слоя.