Membuat, Membuka, dan Menyimpan Berkas PSD
Mengekspor Gambar ke PSD
PSD, dokumen PhotoShop, adalah format berkas default yang digunakan oleh Adobe PhotoShop untuk bekerja dengan gambar. Aspose.PSD memungkinkan Anda untuk memuat, mengedit, dan menyimpan berkas ke PSD sehingga dapat dibuka dan diedit di PhotoShop. Artikel ini menunjukkan cara menyimpan berkas ke PSD dengan Aspose.PSD, dan juga membahas beberapa pengaturan yang dapat digunakan saat menyimpan ke format ini. PsdOptions adalah kelas khusus di namespace ImageOptions yang digunakan untuk mengekspor gambar ke PSD. Untuk mengekspor ke PSD, buat sebuah instansi dari kelas Image, baik dimuat dari berkas gambar yang ada (misalnya miniatur) atau dibuat dari awal. Artikel ini menjelaskan cara melakukannya. Pada contoh di bawah ini, sebuah gambar dibuat dari awal. Setelah itu dibuat dan data pikselnya diisi, simpan gambar menggunakan metode Save dari kelas Image, dan sediakan objek PsdOptions sebagai argumen kedua. Beberapa properti kelas PsdOptions dapat diatur untuk konversi yang lebih canggih. Beberapa propertinya adalah ColorMode, CompressionMethod, dan Version. Aspose.PSD mendukung beberapa metode kompresi berikut melalui enumerasi CompressionMethod:
- CompressionMethod.Raw
- CompressionMethod.RLE
- CompressionMethod.ZipWithoutProtection
- CompressionMethod.ZipWithProtection
Mode warna berikut didukung melalui enumerasi ColorModes:
- ColorModes.Bitmap
- ColorModes.Grayscale
- ColorModes.RGB
Sumber daya tambahan dapat ditambahkan, seperti sumber daya miniatur untuk PSD v4.0, v5.0 dan lebih tinggi, atau sumber daya grid dan panduan untuk PSD v4.0 dan lebih tinggi. Kode di bawah ini membuat berkas BMP dari awal, mengisi piksel, dan menyimpannya ke PSD dengan kompresi RLE dan mode warna grayskale. Potongan kode berikut ini menunjukkan bagaimana cara mengekspor Gambar ke PSD.
String dataDir = Utils.getDataDir(ExportImageToPSD.class) + "PSD/"; | |
// Create a new image from scratch. | |
try (PsdImage bmpImage = new PsdImage(300, 300)) { | |
// Fill image data. | |
Graphics graphics = new Graphics(bmpImage); | |
graphics.clear(Color.getWhite()); | |
Pen pen = new Pen(Color.getBrown()); | |
graphics.drawRectangle(pen, bmpImage.getBounds()); | |
// Create an instance of PsdOptions, Set it's various properties Save image to disk in PSD format | |
PsdOptions psdOptions = new PsdOptions(); | |
psdOptions.setColorMode(ColorModes.Rgb); | |
psdOptions.setCompressionMethod(CompressionMethod.Raw); | |
psdOptions.setVersion(4); | |
bmpImage.save(dataDir + "ExportImageToPSD_output.psd", psdOptions); | |
} |
Mengimpor gambar ke lapisan PSD
Artikel ini mendemonstrasikan penggunaan Aspose.PSD untuk menambah atau mengimpor gambar ke lapisan PSD. API Aspose.PSD telah mengekspos metode yang efisien dan mudah digunakan untuk mencapai tujuan ini. Aspose.PSD telah mengekspos metode DrawImage dari kelas Layer untuk menambah/mengimpor gambar ke dalam berkas PSD. Metode DrawImage memerlukan lokasi dan nilai gambar untuk menambah/mengimpor gambar ke dalam berkas PSD. Langkah-langkah untuk mengimpor gambar ke lapisan PSD adalah sebagai berikut:
- Memuat berkas PSD sebagai gambar menggunakan metode pabrik Load yang diekspos oleh kelas Image.
- Buat sebuah instansi kelas Layer dan berikan lapisan gambar PSD kepadanya.
- Muat gambar yang perlu ditambahkan atau buat satu dari awal.
- Panggil metode Layer.DrawImage sambil menentukan lokasi dan instansi gambar.
- Simpan hasilnya.
Potongan kode berikut ini menunjukkan bagaimana cara mengimpor gambar ke lapisan PSD.
String dataDir = Utils.getDataDir(ImportImageToPSDLayer.class) + "PSD/"; | |
// Load a PSD file as an image and caste it into PsdImage | |
try (PsdImage image = (PsdImage) Image.load(dataDir + "sample.psd"); | |
//Extract a layer from PSDImage | |
Layer layer = image.getLayers()[1]; | |
// Create an image that is needed to be imported into the PSD file. | |
PsdImage drawImage = new PsdImage(200, 200)) { | |
// Fill image surface as needed. | |
Graphics g = new Graphics(drawImage); | |
g.clear(Color.getYellow()); | |
// Call DrawImage method of the Layer class and pass the image instance. | |
layer.drawImage(new Point(10, 10), drawImage); | |
// Save the results to output path. | |
image.save(dataDir + "ImportImageToPSDLayer_out.psd"); | |
} |
Membuat Miniatur dari Berkas PSD
PSD adalah format dokumen asli dari aplikasi Photoshop Adobe. Adobe Photoshop (versi 5.0 dan lebih tinggi) menyimpan informasi miniatur untuk tampilan pratinjau dalam blok sumber daya gambar yang terdiri dari header awal 28 byte, diikuti miniatur JFIF dalam urutan RGB (merah, hijau, biru). API Aspose.PSD menyediakan mekanisme yang mudah digunakan untuk mengakses sumber daya berkas PSD. Sumber daya ini juga termasuk sumber miniatur yang pada gilirannya dapat diambil dan disimpan ke disk sesuai kebutuhan aplikasi. Potongan kode berikut ini menunjukkan bagaimana cara membuat miniatur dari Berkas PSD.
String dataDir = Utils.getDataDir(CreateThumbnailsFromPSDFiles.class) + "PSD/"; | |
// Load a PSD file as an image and caste it into PsdImage | |
try (PsdImage image = (PsdImage) Image.load(dataDir + "sample.psd")) { | |
int index = 0; | |
// Iterate over the PSD resources | |
for (int i = 0; i < image.getImageResources().length; i++) { | |
index++; | |
// Check if the resource is of thumbnail type | |
if (image.getImageResources()[i] instanceof ThumbnailResource) { | |
// Retrieve the ThumbnailResource and Check the format of the ThumbnailResource | |
ThumbnailResource thumbnail = (ThumbnailResource) image.getImageResources()[i]; | |
if (thumbnail.getFormat() == ThumbnailFormat.KJpegRgb) { | |
// Create a new BmpImage by specifying the width and height, Store the pixels of thumbnail on to the newly created BmpImage and save image | |
PsdImage thumnailImage = new PsdImage(thumbnail.getWidth(), thumbnail.getHeight()); | |
thumnailImage.savePixels(thumnailImage.getBounds(), thumbnail.getThumbnailData()); | |
thumnailImage.save(dataDir + "CreateThumbnailsFromPSDFiles_out_" + i + ".bmp"); | |
} | |
} | |
} | |
} |
Membuat Berkas PSD Bereks Indeks
Aspose.PSD untuk API Java dapat membuat berkas PSD Bereks Indeks dari awal. Artikel ini mendemonstrasikan penggunaan kelas PsdOptions dan PsdImage untuk membuat sebuah PSD Bereks Indeks sambil menggambar beberapa bentuk di atas kanvas yang baru dibuat. Langkah-langkah sederhana berikut diperlukan untuk membuat sebuah berkas PSD Bereks Indeks.
- Buat instansi PsdOptions dan tetapkan sumbernya.
- Tetapkan properti ColorMode dari PsdOptions ke ColorModes.Indexed.
- Buat palet baru warna dari ruang RGB dan tetapkan sebagai properti Palette dari PsdOptions.
- Tetapkan properti CompressionMethod ke algoritma kompresi yang dibutuhkan.
- Buat gambar PSD baru dengan memanggil metode PsdImage.Create.
- Gambar grafik atau lakukan operasi lain sesuai kebutuhan.
- Panggil metode PsdImage.Save untuk menerapkan semua perubahan.
Potongan kode berikut ini menunjukkan bagaimana cara membuat berkas PSD Bereks Indeks.
String dataDir = Utils.getDataDir(CreateIndexedPSDFiles.class) + "PSD/"; | |
// Create an instance of PsdOptions and set it's properties | |
PsdOptions createOptions = new PsdOptions(); | |
createOptions.setSource(new FileCreateSource(dataDir + "Newsample_out.psd", false)); | |
createOptions.setColorMode(ColorModes.Indexed); | |
createOptions.setVersion(5); | |
// Create a new color palette having RGB colors, Set Palette property & compression method | |
Color[] palette = {Color.getRed(), Color.getGreen(), Color.getBlue(), Color.getYellow()}; | |
createOptions.setPalette(new PsdColorPalette(palette)); | |
createOptions.setCompressionMethod(CompressionMethod.RLE); | |
// Create a new PSD with PsdOptions created previously | |
try (Image psd = Image.create(createOptions, 500, 500)) { | |
// Draw some graphics over the newly created PSD | |
Graphics graphics = new Graphics(psd); | |
graphics.clear(Color.getWhite()); | |
graphics.drawEllipse(new Pen(Color.getRed(), 6), new Rectangle(0, 0, 400, 400)); | |
psd.save(); | |
} |
Mengekspor Lapisan PSD ke Gambar Raster
Aspose.PSD untuk Java memungkinkan Anda untuk mengekspor lapisan dalam berkas PSD ke dalam gambar raster. Harap gunakan metode Aspose.PSD.FileFormats.Psd.Layers.Layer.Save untuk mengekspor lapisan ke gambar. Potongan kode contoh berikut memuat berkas PSD dan mengekspor setiap lapisannya ke dalam gambar PNG menggunakan Aspose.PSD.FileFormats.Psd.Layers.Layer.Save. Setelah semua lapisan diekspor ke dalam gambar PNG, Anda dapat membukanya menggunakan penampil gambar favorit Anda. Potongan kode berikut ini menunjukkan bagaimana cara mengekspor lapisan PSD ke gambar raster.
String dataDir = Utils.getDataDir(ExportPSDLayerToRasterImage.class) + "PSD/"; | |
// Load a PSD file as an image and caste it into PsdImage | |
try (PsdImage psdImage = (PsdImage) Image.load(dataDir + "sample.psd")) { | |
// Create an instance of PngOptions class | |
PngOptions pngOptions = new PngOptions(); | |
pngOptions.setColorType(PngColorType.TruecolorWithAlpha); | |
// Loop through the list of layers | |
for (int i = 0; i < psdImage.getLayers().length; i++) { | |
// Convert and save the layer to PNG file format. | |
psdImage.getLayers()[i].save(String.format("layer_out{0}.png", i + 1), pngOptions); | |
} | |
} |