Lewati ke konten utama

Ikhtisar

Image Resizer adalah aplikasi command-line yang dibangun dengan .NET dan dirancang untuk mengubah ukuran gambar. Aplikasi ini memungkinkan Anda mengubah ukuran gambar yang diberikan dengan menentukan ukuran target dalam byte dan folder output.

Alat ini bertujuan untuk mempertahankan kemiripan gambar asli. Perbedaan apa pun harus tetap berada dalam toleransi penglihatan manusia.

Output alat ini menargetkan nilai skor kemiripan visual 90% atau lebih tinggi dalam pengujian perbandingan menggunakan algoritma cross correlation.

Integrasi Import / Export

File yang didukung dapat diproses menggunakan fungsi export dari Glasswall Engine. Fungsi ini menghasilkan file ZIP yang berisi semua gambar yang diekstrak dari dokumen asli.

Fitur ini memungkinkan pemrosesan kustom pada gambar, yang kemudian dapat dimasukkan kembali ke dalam dokumen asli menggunakan fungsi import.

Namun, ada beberapa keterbatasan integrasi yang perlu diperhatikan:

  • Mengubah nama file gambar menjadi apa pun yang berbeda dari nama aslinya akan menyebabkan kegagalan saat menempatkan kembali gambar ke dalam dokumen selama proses import.
  • Nama file peka huruf besar/kecil.
  • Jika ukuran file gambar melebihi ukuran aslinya, import mungkin tidak berhasil.

Alat ini memungkinkan pengguna mengubah ukuran gambar ke ukuran target yang lebih kecil dari atau sama dengan ukuran file asli, sehingga memastikan proses import berjalan lancar.

Penggunaan:

gw_image_resizer [options]

Opsi:

  -i, --in <filename> (REQUIRED)                               Input file name
-o, --out <filename> (REQUIRED) Output file name
-t, --target <max size in bytes> (REQUIRED) Target maximum output file size
-l, --memory-limit <max memory limit percentage> (OPTIONAL) An optional number that specifies the maximum amount of system memory percent the image resize is limited to [default: 50]
-T, --temp-dir <path> (OPTIONAL) Defines the path to an existing directory where temporary files are created during processing [default: $TMPDIR/.gw-image-resizer]
-?, -h, --help Show help and usage information
--version Show version information

Kode keluar

Kode KeluarDeskripsi
0Berhasil di-resize atau file sudah berukuran target
1Ukuran target file input kurang dari nol
2File input tidak dapat ditemukan
3File input tidak dapat dimuat karena rusak atau tidak didukung
4File input tidak dapat dimuat karena alasan yang tidak diketahui
5Sebagian dari path output tidak ada
6Tidak dapat menulis file output karena alasan yang tidak diketahui
7Kesalahan umum pada library magick saat mencoba melakukan resize
8Tidak dapat mencapai ukuran target yang diinginkan
9Kesalahan tak terduga
10Opsi batas memori tidak berada di antara 1-100
11Path direktori sementara tidak dapat ditemukan
12Tidak dapat menulis ke direktori sementara

Direktori sementara

Untuk memastikan perubahan ukuran file berhasil, selama pemrosesan alat image resizer dapat menggunakan direktori sementara yang berada di "$TMPDIR/.gw-image-resizer" atau "/tmp/.gw.image-resizer". Ini dapat diganti ke direktori yang sudah ada dan dapat ditulisi dengan opsi command line opsional "--temp-dir" (atau singkatnya "-T".)

CATATAN: Jika direktori sementara tidak dapat ditulisi (misalnya pengguna saat ini tidak memiliki izin yang memadai), aplikasi akan gagal ketika data pemrosesan gambar perlu di-cache. Disarankan untuk menguji bahwa pengguna dapat menulis ke direktori tersebut guna menghindari masalah sporadis selama pengoperasian.

Membatasi memori

Secara default, alokasi memori yang digunakan untuk mengubah ukuran gambar dibatasi hingga 50% dari memori sistem. Ini dapat diganti ke nilai antara 1-100 dengan opsi command line opsional "-l".

Dukungan

Alat ini saat ini mendukung hal berikut:

  • JPEG
  • PNG
  • BMP
  • TIFF (lihat masalah umum GeoTiff)
  • GIF

File lain yang didukung oleh ImageMagick mungkin dapat dimuat dengan benar tetapi belum diimplementasikan secara eksplisit.

Strategi pengubahan ukuran

Semua file gambar yang didukung melalui serangkaian metode untuk mencapai ukuran target. Contohnya:

Kualitas kompresi:

File JPEG / JPG memiliki kualitas yang diatur ke 25.

File PNG diatur ke 100.

Jenis file lainnya tetap tidak berubah, namun metode kompresi selalu diatur ke LZW.

Optimasi GIF

Karena GIF dapat terdiri dari beberapa gambar dan layer, ada potensi optimasi yang dapat dilakukan untuk mengurangi ukuran file.

Jika layer-layer berbeda dari suatu gambar memiliki ukuran yang berbeda, Optimization dilakukan oleh Image Magick untuk mengurangi ukuran file.

Jika tidak, GIF akan di-Coalesced, yang menggabungkan kemiripan dalam gambar pada urutan tersebut untuk mengurangi ukuran.

Transparansi juga dioptimalkan pada tahap ini, dengan mengganti data piksel duplikat di seluruh urutan dengan transparansi.

Kuantisasi

Semua gambar kemudian akan di-Quantized, yang akan membatasi jumlah warna menjadi 128, tanpa mengubah nilainya jika jumlahnya sudah kurang dari itu.

Penskalaan turun

Jika target belum tercapai, gambar kemudian akan diubah ukurannya hingga target tercapai. Resolusi dikurangi menjadi 95% dari ukuran asli secara terus-menerus hingga target tercapai atau resolusi tidak dapat dikurangi lebih lanjut.

Masalah yang diketahui

Pemrosesan dapat menghapus data lokasi dari piksel dalam GeoTIFF. Selain itu, TIFF biasa mungkin mengalami pembalikan warna pada gambar grayscale.

Pustaka pihak ketiga

Nama PustakaVersi PustakaJenisJenis LisensiURL LisensiURL ProyekURL Sumber
System.CommandLine2.0.0-beta4.22272.1PustakaMITTautanTautanTautan
System.CommandLine.Hosting0.4.0-alpha.22272.1PustakaMITTautanTautanTautan
Magick.NET-Q8-AnyCPU13.10.0PustakaApache-2.0TautanTautanTautan

Alat Image Resizer milik Glasswall menggunakan paket NuGet "Magick.NET-Q8-AnyCPU" yang merupakan wrapper dotnet untuk ImageMagick.

ImageMagick sendiri adalah alat open source gratis yang digunakan untuk mengedit dan memanipulasi gambar digital.