Menambahkan Watermark ke Gambar

Menambahkan Watermark ke Gambar

Dokumen ini menjelaskan cara menambahkan watermark ke gambar menggunakan Aspose.PSD. Menambahkan watermark ke gambar adalah kebutuhan umum untuk aplikasi pengolahan gambar. Contoh ini menggunakan kelas Graphics untuk menggambar string pada permukaan gambar.

Menambahkan Watermark

Untuk mendemonstrasikan operasi ini, kita akan memuat gambar BMP dari disk dan menggambar sebuah string sebagai watermark di permukaan gambar menggunakan metode DrawString dari kelas Graphics. Kita akan menyimpan gambar dalam format PNG menggunakan kelas PngOptions. Berikut ini adalah contoh kode yang menunjukkan bagaimana menambahkan watermark ke gambar. Kode sumber contoh telah dibagi menjadi bagian-bagian untuk memudahkan pemahaman. Langkah demi langkah, contoh tersebut menunjukkan cara untuk:

  1. Memuat sebuah gambar.
  2. Membuat dan menginisialisasi objek Graphics.
  3. Membuat dan menginisialisasi objek Font dan SolidBrush.
  4. Menggambar sebuah string sebagai watermark menggunakan metode DrawString dari kelas Graphics.
  5. Menyimpan gambar dalam format PNG.

Potongan kode berikut menunjukkan bagaimana cara menambahkan watermark ke gambar.

String dataDir = Utils.getDataDir(AddWatermark.class) + "PSD/";
// Load a PSD file as an image and cast it into PsdImage
try (PsdImage psdImage = (PsdImage) Image.load(dataDir + "layers.psd")) {
// Create graphics object to perform draw operations.
Graphics graphics = new Graphics(psdImage);
// Create font to draw watermark with.
Font font = new Font("Arial", 20.0f);
// Create a solid brush with color alpha set near to 0 to use watermarking effect.
SolidBrush brush = new SolidBrush(Color.fromArgb(50, 128, 128, 128));
// Specify string alignment to put watermark at the image center.
StringFormat sf = new StringFormat();
sf.setAlignment(StringAlignment.Center);
sf.setLineAlignment(StringAlignment.Center);
// Draw watermark using font, partly-transparent brush and rotation matrix at the image center.
graphics.drawString("Some watermark text", font, brush, new RectangleF(0, 0, psdImage.getWidth(), psdImage.getHeight()), sf);
// Export the image into PNG file format.
psdImage.save(dataDir + "AddWatermark_output.png", new PngOptions());
}

Menambahkan Watermark Diagonal

Menambahkan watermark diagonal ke gambar mirip dengan menambahkan watermark horizontal seperti yang dibahas sebelumnya, dengan beberapa perbedaan. Untuk mendemonstrasikan operasi, kita akan memuat gambar JPG dari disk, menambahkan transformasi menggunakan objek kelas Matrix, dan menggambar sebuah string sebagai watermark di permukaan gambar menggunakan metode DrawString dari kelas Graphics. Berikut ini adalah contoh kode yang menunjukkan bagaimana menambahkan watermark diagonal ke gambar. Kode sumber contoh telah dibagi menjadi bagian-bagian untuk memudahkan pemahaman. Langkah demi langkah, contoh tersebut menunjukkan cara untuk:

  1. Memuat sebuah gambar.
  2. Membuat dan menginisialisasi objek Graphics.
  3. Membuat dan menginisialisasi objek Font dan SolidBrush.
  4. Mendapatkan ukuran gambar dalam objek SizeF.
  5. Membuat sebuah instance dari kelas Matrix dan melakukan transformasi komposit.
  6. Menetapkan transformasi ke objek Graphics.
  7. Membuat dan menginisialisasi objek StringFormat.
  8. Menggambar sebuah string sebagai watermark menggunakan metode DrawString dari kelas Graphics.
  9. Menyimpan gambar hasilnya.

Potongan kode berikut menunjukkan bagaimana cara menambahkan watermark diagonal.

String dataDir = Utils.getDataDir(AddDiagnolWatermark.class) + "PSD/";
// Load a PSD file as an image and cast it into PsdImage
try (PsdImage psdImage = (PsdImage) Image.load(dataDir + "layers.psd")) {
// Create graphics object to perform draw operations.
Graphics graphics = new Graphics(psdImage);
// Create font to draw watermark with.
Font font = new Font("Arial", 20.0f);
// Create a solid brush with color alpha set near to 0 to use watermarking effect.
SolidBrush brush = new SolidBrush(Color.fromArgb(50, 128, 128, 128));
// specify transform matrix to rotate watermark.
graphics.setTransform(new Matrix());
graphics.getTransform().rotateAt(45, new PointF(psdImage.getWidth() / 2, psdImage.getHeight() / 2));
// Specify string alignment to put watermark at the image center.
StringFormat sf = new StringFormat();
sf.setAlignment(StringAlignment.Center);
// Draw watermark using font, partly-transparent brush at the image center.
graphics.drawString("Some watermark text", font, brush, new RectangleF(0, psdImage.getHeight() / 2, psdImage.getWidth(), psdImage.getHeight() / 2), sf);
// Export the image into PNG file format.
psdImage.save(dataDir + "AddDiagnolWatermark_output.png", new PngOptions());
}