Вы либо настройки alpha
в целях изображения с пути до 1,0 сек в другом месте, или вы используете то, что не разрешает прозрачные пленки (например, UIGraphicsBeginImageContextWithOptions
с YES
для непрозрачного параметра или для размещения изображения в формате, который не сохраняет альфа, например JPEG).
Несколько дополнительных мыслей:
Я заметил, что вы только рисунок upperImageView
. Если вы хотите составное изображение, вам нужно нарисовать оба. Или вы только пытаетесь сохранить один из изображений?
(Для тех, кто не знаком с этим другим вопросом, весь смысл заключался в том, как рисовать несколько путей по изображению и иметь полный набор этих путей с тем же уменьшенным альфа, вместо того, чтобы пересечение путей приводило к некоторому аддитивное поведение. Это было достигнуто за счет наличия двух отдельных представлений изображений: одного для основного изображения и одного для рисованных путей. Ключ к ответу на этот вопрос заключался в том, что нужно рисовать пути со 100% альфой, но добавлять это как слой к виду, который сам по себе имеет уменьшенную альфу.)
Что представляет собой изображение alpha
изображения, на котором вы рисуете.
NB: В ответ на этот другой вопрос при сохранении временной копии комбинированных путей. нам пришлось временно установить альфа 1.0. Но при сохранении конечного результата здесь мы хотим сохранить альфа-версию изображения «путь» по ее уменьшенному значению.
Несвязанный, но вы верно напечатали опечатку (с фиксированной) в моем первоначальном примере, где я случайно назвал UIGraphicsEndPDFContext
, а не UIGraphicsEndImageContext
. Вы должны использовать последний.
Таким образом, учитывая два вида изображения, один с фотографией и один с нарисованным путем, называемых imageImageView
(с alpha
1,0) и pathsImageView
(с alpha
0.5), соответственно, я могу сохранить снимок как так:
- (void)saveSnapshot {
CGRect rect = self.pathsImageView.bounds;
UIGraphicsBeginImageContextWithOptions(rect.size, NO, 0);
if ([self.pathsImageView respondsToSelector:@selector(drawViewHierarchyInRect:afterScreenUpdates:)]) {
[self.imageImageView drawViewHierarchyInRect:rect afterScreenUpdates:YES]; // iOS7+
[self.pathsImageView drawViewHierarchyInRect:rect afterScreenUpdates:YES];
} else {
[self.imageImageView.layer renderInContext:UIGraphicsGetCurrentContext()]; // pre iOS7
[self.pathsImageView.layer renderInContext:UIGraphicsGetCurrentContext()];
}
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
}
Когда я сделал это, в результате составное изображение было в моем фотоальбоме:
Большое спасибо ...... Моя проблема Исправлено: – Sapanesh
Спасибо, мой вопрос исправлен – Rajesh