#objective-c #ios4 #screenshot
#objective-c #ios4 #скриншот
Вопрос:
Итак, мне удалось сделать это по большей части. Но по какой-то причине изображение, на которое делается снимок экрана, не получает скриншот должным образом.
Например, это изображение:
http://postimage.org/image/kfioellw/
Хотите обрезать его следующим образом:
http://postimage.org/image/kfkbxy3o/
В итоге получается вот так:
http://postimage.org/image/kflzhalg/
Вот как я это делаю:
-(IBAction)cropButtonPressed {
UIGraphicsBeginImageContext(thumbnailScroll.frame.size);
[thumbnailScroll.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *pThumbnail = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[delegate didFinishCroppingImage:(UIImage *)pThumbnail withSmallPicture:(UIImage *)pThumbnail andOriginalPicture:(UIImage *)pThumbnail];
}
-(void)didFinishCroppingImage:(UIImage *)croppedImage withSmallPicture:(UIImage *)smallPic andOriginalPicture:(UIImage *)original {
normalThumbnail.image = croppedImage;
UIImageWriteToSavedPhotosAlbum(normalThumbnail.image, nil, nil, nil);
[self dismissModalViewControllerAnimated:YES];
}
Я не понимаю, почему это не скриншот того, что у меня есть в моем UIScrollView. Любая помощь? Я постараюсь предоставить столько деталей, сколько потребуется.
Комментарии:
1. Вы работаете на устройстве / симуляторе Retina? Я не уверен, где, но, похоже, что-то не знает о contentscale, глядя на ваши скриншоты.
2. Да, это для устройства retina. Проблема возникает как в симуляторе, так и на реальном устройстве.
3. Вы должны убедиться, что масштаб содержимого во всех ваших слоях и изображениях равен 2.
4. Мои глубочайшие извинения за вопрос, но как именно мне это сделать? Кажется, я не могу найти ничего с «contentScale», по крайней мере, не в IB.
5. Я никогда не использую IB, я создаю свои представления программно, пожалуйста, опубликуйте код, в котором вы отображаете изображение, и я, возможно, смогу вам помочь оттуда. contentsScale — это свойство слоя, в UIImageView это свойство называется contentsScaleFactor, я подозреваю, что у вашего обрезанного изображения это значение равно 1 вместо 2.