Нет.Нет, если оригинал Image
не окажется уже BufferedImage
.Тогда вы можете просто выполнить приведение:
BufferedImage bufImg = null;
if (origImage instanceof BufferedImage) {
bufImg = (BufferedImage) origImage;
else {
bugImg = new BufferedImage(...);
// proper initialization
}
Если это не BufferedImage
, то вполне может быть, например, VolatileImage
(другой конкретный подкласс в API).
Из документов на volatile image:
VolatileImage - это изображение, которое может потерять свое содержимое в любое время из-за не зависящих от приложения обстоятельств (например, ситуаций, вызванных операционной системой или другимиприложения).
Как вы понимаете, такое изображение не может обеспечить тот же интерфейс, что и BufferedImage
, поэтому единственный способ получить BufferedImage
- это создать его и нарисоватьисходное изображение поверх него.