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 Keluar | Deskripsi |
|---|---|
| 0 | Berhasil di-resize atau file sudah berukuran target |
| 1 | Ukuran target file input kurang dari nol |
| 2 | File input tidak dapat ditemukan |
| 3 | File input tidak dapat dimuat karena rusak atau tidak didukung |
| 4 | File input tidak dapat dimuat karena alasan yang tidak diketahui |
| 5 | Sebagian dari path output tidak ada |
| 6 | Tidak dapat menulis file output karena alasan yang tidak diketahui |
| 7 | Kesalahan umum pada library magick saat mencoba melakukan resize |
| 8 | Tidak dapat mencapai ukuran target yang diinginkan |
| 9 | Kesalahan tak terduga |
| 10 | Opsi batas memori tidak berada di antara 1-100 |
| 11 | Path direktori sementara tidak dapat ditemukan |
| 12 | Tidak 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 Pustaka | Versi Pustaka | Jenis | Jenis Lisensi | URL Lisensi | URL Proyek | URL Sumber |
|---|---|---|---|---|---|---|
| System.CommandLine | 2.0.0-beta4.22272.1 | Pustaka | MIT | Tautan | Tautan | Tautan |
| System.CommandLine.Hosting | 0.4.0-alpha.22272.1 | Pustaka | MIT | Tautan | Tautan | Tautan |
| Magick.NET-Q8-AnyCPU | 13.10.0 | Pustaka | Apache-2.0 | Tautan | Tautan | Tautan |
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.