Создание, открытие и сохранение изображений
Создание файлов изображений
Aspose.PSD for Java позволяет разработчикам создавать свои собственные изображения. Используйте статический метод Create, предоставляемый классом Image, чтобы создавать новые изображения. Все, что вам нужно сделать, это предоставить подходящий объект одного из классов из пространства имен ImageOptions для желаемого формата вывода изображения. Для создания файла изображения сначала создайте экземпляр одного из классов из пространства имен ImageOptions. Эти классы определяют формат вывода изображения. Ниже приведены некоторые классы из пространства имен ImageOptions (обратите внимание, что в настоящее время поддерживаются только семейства форматов файлов PSD для создания):
PsdOptions задает параметры для создания файла PSD. Файлы изображений можно создавать, задавая путь вывода или устанавливая поток.
Создание, установив путь
Создайте PsdOptions из пространства имен ImageOptions и установите различные свойства. Самое важное свойство для установки - это свойство Source. Это свойство указывает, где находятся данные изображения (в файле или потоке). В приведенном ниже примере источником является файл. После установки свойств передайте объект в один из статических методов Create вместе с параметрами ширины и высоты. Ширина и высота определяются в пикселях.
String dataDir = Utils.getDataDir(CreatingbySettingPath.class) + "DrawingAndFormattingImages/"; | |
String desName = dataDir + "CreatingAnImageBySettingPath_out.psd"; | |
// Creates an instance of PsdOptions and set its various properties | |
PsdOptions psdOptions = new PsdOptions(); | |
psdOptions.setCompressionMethod(CompressionMethod.RLE); | |
// Define the source property for the instance of PsdOptions. Second boolean parameter determines if the file is temporal or not | |
psdOptions.setSource(new FileCreateSource(desName, false)); | |
// Creates an instance of Image and call Create method by passing the PsdOptions object | |
try (Image image = Image.create(psdOptions, 500, 500)) { | |
image.save(); | |
} |
Создание, используя поток
Процесс создания изображения с использованием потока такой же, как и при использовании пути. Единственное отличие в том, что вам нужно создать экземпляр StreamSource, передав объект Stream в его конструктор и присвоив его свойству Source.
String dataDir = Utils.getDataDir(CreatingUsingStream.class) + "DrawingAndFormattingImages/"; | |
String desName = dataDir + "CreatingImageUsingStream_out.bmp"; | |
// Creates an instance of BmpOptions and set its various properties | |
BmpOptions imageOptions = new BmpOptions(); | |
imageOptions.setBitsPerPixel(24); | |
// Create an instance of System.IO.Stream | |
FileCreateSource stream = new FileCreateSource(dataDir + "sample_out.bmp"); | |
// Define the source property for the instance of BmpOptions Second boolean parameter determines if the Stream is disposed once get out of scope | |
imageOptions.setSource(stream); | |
// Creates an instance of Image and call Create method by passing the BmpOptions object | |
try (Image image = Image.create(imageOptions, 500, 500)) { | |
// Do some image processing | |
image.save(desName); | |
} |
Открытие файлов изображений
Разработчики могут использовать API Aspose.PSD для Java для открытия существующих файлов изображений PSD для различных целей, таких как добавление эффектов к изображению или преобразование существующего файла в другой формат. Независимо от цели, Aspose.PSD предоставляет два стандартных способа открытия существующих файлов: из файла или из потока.
Открытие с диска
Откройте файл изображения, передав путь и имя файла в качестве параметра в статический метод Load, предоставленный классом Image.
String dataDir = Utils.getDataDir(SavingtoDisk.class) + "Conversion/"; | |
String sourceFile = dataDir + "sample.psd"; | |
String destName = dataDir + "result.png"; | |
// load PSD image and replace the non found fonts. | |
try (Image image = Image.load(sourceFile); PsdImage psdImage = (PsdImage) image) { | |
psdImage.save(destName, new PngOptions()); | |
} |
Открытие с использованием потока
Иногда изображение, которое необходимо открыть, хранится как поток. В таких случаях используйте перегруженную версию метода Load. Она принимает объект Stream в качестве аргумента для открытия изображения.
String dataDir = Utils.getDataDir(LoadingFromStream.class) + "Conversion/"; | |
String sourceFile = dataDir + "sample.psd"; | |
String destName = dataDir + "result.png"; | |
FileInputStream inputStream = new FileInputStream(sourceFile); | |
try (Image image = Image.load(inputStream); | |
PsdImage psdImage = (PsdImage) image) { | |
MemoryStream stream = new MemoryStream(); | |
FileOutputStream outputStream = new FileOutputStream(sourceFile); | |
psdImage.save(outputStream, new PngOptions()); | |
} |
Загрузка изображения в качестве слоя
Эта статья демонстрирует использование Aspose.PSD для загрузки изображения в качестве слоя. Aspose.PSD API предоставляет эффективные и простые в использовании методы для достижения этой цели. Aspose.PSD предоставляет метод AddLayer класса PsdImage для добавления изображения в файл PSD в виде слоя.
Шаги загрузки изображения в PSD в качестве слоя просты:
- Создайте экземпляр изображения, используя класс PsdImage с указанной шириной и высотой.
- Загрузите файл PSD как изображение с помощью фабричного метода Load, предоставленного классом Image.
- Создайте экземпляр класса Layer и присвойте ему слой изображения PSD.
- Добавьте созданный слой с помощью метода AddLayer, предоставленного классом PsdImage.
- Сохраните результат.
String dataDir = Utils.getDataDir(LoadImageToPSD.class) + "PSD/"; | |
String filePath = dataDir + "PsdExample.psd"; | |
String outputFilePath = dataDir + "PsdResult.psd"; | |
try (PsdImage image = new PsdImage(200, 200); | |
Image im = Image.load(filePath)) { | |
Layer layer = null; | |
try { | |
layer = new Layer((RasterImage) im, false); | |
image.addLayer(layer); | |
} catch (Exception e) { | |
if (layer != null) { | |
layer.dispose(); | |
} | |
System.out.println(e); | |
} | |
} |
Сохранение файлов изображений
Aspose.PSD позволяет создавать файлы изображений с нуля. Он также предоставляет средства для редактирования существующих файлов изображений. После создания или изменения изображения файл обычно сохраняется на диск. Aspose.PSD предоставляет вам методы для сохранения изображений на диск, указывая путь или используя объект Stream.
Сохранение на диск
Класс Image представляет объект изображения, а значит, этот класс предоставляет все необходимые инструменты для создания, загрузки и сохранения файла изображения. Используйте метод Save класса Image для сохранения изображений. Одна из перегруженных версий метода Save принимает путь к файлу в виде строки.
String dataDir = Utils.getDataDir(SavingtoDisk.class) + "Conversion/"; | |
String sourceFile = dataDir + "sample.psd"; | |
String destName = dataDir + "result.png"; | |
// load PSD image and replace the non found fonts. | |
try (Image image = Image.load(sourceFile); PsdImage psdImage = (PsdImage) image) { | |
psdImage.save(destName, new PngOptions()); | |
} |
Сохранение в поток
Другая перегруженная версия метода Save принимает объект Stream в качестве аргумента и сохраняет файл изображения в поток.
Если изображение создано, указав любые из параметров CreateOptions в конструкторе Image, изображение автоматически сохраняется в путь или поток, указанный при инициализации класса Image, вызывая метод Save, который не принимает никаких параметров.
String dataDir = Utils.getDataDir(SavingtoStream.class) + "Conversion/"; | |
String sourceFile = dataDir + "sample.psd"; | |
String destName = dataDir + "result.png"; | |
// load PSD image and replace the non found fonts. | |
try (Image image = Image.load(sourceFile); PsdImage psdImage = (PsdImage) image) { | |
FileOutputStream outputStream = new FileOutputStream(sourceFile); | |
psdImage.save(outputStream, new PngOptions()); | |
} |
Установка для замены отсутствующих шрифтов
Разработчики могут использовать API Aspose.PSD для Java для загрузки существующих файлов изображений PSD для различных целей, например, чтобы установить имя шрифта по умолчанию при сохранении документов PSD в растровое изображение (в форматах PNG, JPG и BMP). Этот шрифт по умолчанию должен использоваться в качестве замены для всех отсутствующих шрифтов (шрифтов, которые не найдены в текущей операционной системе). После внесения изменений в изображение файл будет сохранен на диск.
String dataDir = Utils.getDataDir(SettingforReplacingMissingFonts.class) + "Conversion/"; | |
String sourceFile = dataDir + "sample.psd"; | |
String destName = dataDir + "result.png"; | |
PsdLoadOptions loadOptions = new PsdLoadOptions(); | |
loadOptions.setDefaultReplacementFont("Arial"); | |
// load PSD image and replace the non found fonts. | |
try (Image image = Image.load(sourceFile, loadOptions); | |
PsdImage psdImage = (PsdImage) image) { | |
PngOptions Options = new PngOptions(); | |
Options.setColorType(PngColorType.TruecolorWithAlpha); | |
psdImage.save(destName, Options); | |
} |