Images

Images

Halaman ini membahas penempatan gambar raster pada halaman, memeriksa gambar yang sudah disematkan dalam dokumen, dan mengurangi ukurannya. Untuk merender sebuah page ke gambar, lihat Conversion.


Menyematkan Gambar

Page.AddImage() menempatkan byte gambar JPEG, PNG, BMP, atau TIFF ke dalam sebuah persegi panjang dengan presisi piksel pada halaman.

// Source is 1280x1014; scaled to 60% of the page width, aspect preserved.
const srcW = 1280;
const srcH = 1014;
const imgW = pageWidth(page) * 0.6;
const imgH = (imgW * srcH) / srcW;
const x = (pageWidth(page) - imgW) / 2;
const y = (pageHeight(page) - imgH) / 2;

page.AddImage(imageBytes, [x, y, x + imgW, y + imgH]);

AddImageOptions menerima opacity, sebuah format eksplisit ketika tidak dapat dikenali dari byte, sebuah tag (sebuah StructElement untuk melampirkan gambar dalam dokumen bertanda), dan sebuah layer untuk konten opsional.


Memeriksa Gambar yang Disematkan

Page.Images mencantumkan setiap gambar yang sudah ada di halaman sebagai ImageInfo[], tanpa mendekode data piksel apa pun — setiap entri menampilkan Width, Height, Bits, ColorSpace, dan Filter. Panggil Decode() pada sebuah ImageInfo untuk mendapatkan byte contoh mentahnya, Replace() untuk menukar data gambar baru di tempat, atau Remove() untuk menghapusnya dari halaman.

for (const img of page.Images) {
  console.log(img.Width, img.Height, img.ColorSpace, img.Filter);
}

Mengoptimalkan Gambar

Document.Optimize() mengurangi ukuran file di seluruh dokumen; berikan opsi images (OptimizeImageOptions, dengan bidang dpi dan quality) untuk juga downsample dan re-encode gambar yang disematkan sebagai bagian dari satu pass.

const report = doc.Optimize({ images: { dpi: 150, quality: 80 } });

Tips dan Praktik Terbaik

  • Page.Images hanya membaca metadata — mendekode semua data piksel penuh setiap gambar dengan Decode() di awal tidak diperlukan jika Anda hanya membutuhkan dimensi atau ruang warna.
  • Berikan format eksplisit dalam AddImageOptions ketika byte sumber berasal dari aliran atau buffer tanpa ekstensi file yang dapat diandalkan untuk dideteksi.
  • Gunakan Document.Optimize({ images: { dpi, quality } }) untuk memperkecil dokumen dengan banyak gambar, daripada secara manual mendekode dan menambahkan kembali masing-masing.
  • Kotak Page.AddImage() menetapkan ukuran penempatan secara langsung — skala kotak target ke rasio aspek gambar sumber sendiri untuk menghindari peregangan.

Masalah Umum

MasalahPenyebabPerbaikan
Gambar tampak tertarik atau tertekanTarget rect yang diberikan ke AddImage() tidak cocok dengan rasio aspek gambar sumberHitung lebar/tinggi persegi panjang dari dimensi asli gambar sumber
Page.AddImage() menempatkan format yang salahFormat byte gambar tidak dapat dideteksi secara andalBerikan format secara eksplisit dalam AddImageOptions
Dokumen jauh lebih besar dari yang diharapkan setelah menambahkan gambarGambar disematkan dengan resolusi dan kualitas penuhPanggil Document.Optimize({ images: { dpi, quality } }) untuk menurunkan resolusi dan mengkode ulang

FAQ

Bagaimana cara menempatkan gambar pada halaman?

Panggil page.AddImage(imageBytes, rect), di mana rect adalah sebuah persegi panjang [x0, y0, x1, y1] dalam poin ruang halaman.

Bagaimana cara mendaftar gambar yang sudah ada di halaman tanpa mendekodenya?

Baca page.Images — sebuah ImageInfo[] yang menampilkan Width, Height, ColorSpace, dan Filter untuk setiap gambar tanpa mendekode data piksel.

Apakah saya dapat mengurangi ukuran file dokumen dengan mengompresi gambar-gambarnya?

Ya — panggil Document.Optimize({ images: { dpi, quality } }), yang melakukan downsampling dan mengenkode ulang gambar yang disematkan sebagai bagian dari proses optimalisasi seluruh dokumen.

Bagaimana menyematkan gambar berbeda dari merender halaman menjadi gambar?

Page.AddImage() menempatkan byte gambar raster pada halaman yang sudah ada. Page.ToImage() (lihat Conversion) melakukan kebalikan — merender seluruh halaman menjadi byte PNG.


API Reference Ringkasan

Kelas/MetodeDeskripsi
Page.AddImage()Tempatkan byte gambar ke dalam persegi panjang pada halaman
AddImageOptionsOpsi untuk AddImage(): opacity, format, tag, layer
Page.ImagesSetiap gambar yang sudah ada di halaman, sebagai ImageInfo[] hanya metadata
ImageInfo.Decode() / Replace() / Remove()Baca data piksel, tukar dengan byte baru, atau hapus sebuah gambar
Document.Optimize()Kurangi ukuran file secara keseluruhan dokumen, secara opsional menurunkan resolusi gambar melalui images: { dpi, quality }

Lihat Juga

 Bahasa Indonesia