Pangkalahatang-ideya
Ang Image Resizer ay isang command-line application na binuo gamit ang .NET na idinisenyo upang baguhin ang laki ng mga larawan. Pinapayagan ka nitong baguhin ang laki ng ibinigay na larawan sa pamamagitan ng pagtukoy ng target na laki sa bytes at isang output folder.
Layunin ng tool na mapanatili ang pagkakahawig ng orihinal na larawan. Anumang pagkakaiba ay dapat manatili sa loob ng mga limitasyon ng paningin ng tao.
Ang output ng tool na ito ay nakatuon sa halagang 90% o mas mataas na visuality similarity score sa mga paghahambing na pagsubok gamit ang isang cross correlation algorithm.
Integrasyon ng Import / Export
Maaaring iproseso ang mga sinusuportahang file gamit ang export function ng Glasswall Engine. Ang function na ito ay naglalabas ng isang ZIP file na naglalaman ng lahat ng larawang na-extract mula sa orihinal na dokumento.
Pinapayagan ng feature na ito ang custom na pagproseso ng mga larawan, na maaari pagkatapos ay muling ipasok sa orihinal na dokumento gamit ang import function.
Gayunpaman, may ilang limitasyon sa integrasyon na dapat tandaan:
- Ang pagpapalit ng mga file name ng mga larawan sa anumang naiiba sa mga orihinal na pangalan ay magreresulta sa pagkabigo na maibalik ang mga larawan sa dokumento sa panahon ng proseso ng import.
- Case sensitive ang mga file name.
- Kung ang laki ng file ng isang larawan ay lumampas sa orihinal na laki, maaaring hindi maging matagumpay ang import.
Pinapahintulutan ng tool ang mga user na baguhin ang laki ng mga larawan sa isang target na laki na mas mababa sa o katumbas ng orihinal na laki ng file, na tinitiyak ang maayos na proseso ng import.
Paggamit:
gw_image_resizer [options]
Mga opsyon:
-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
Mga exit code
| Exit Code | Paglalarawan |
|---|---|
| 0 | Matagumpay na na-resize o ang file ay nasa target na laki na |
| 1 | Ang target na laki ng input file ay mas mababa sa zero |
| 2 | Hindi mahanap ang input file |
| 3 | Hindi ma-load ang input file dahil sira ito o hindi suportado |
| 4 | Hindi ma-load ang input file dahil sa hindi kilalang dahilan |
| 5 | May bahagi ng output path na hindi umiiral |
| 6 | Hindi maisulat ang output file dahil sa hindi kilalang dahilan |
| 7 | Pangkalahatang error sa magick library habang sinusubukang mag-resize |
| 8 | Hindi naabot ang nais na target na laki |
| 9 | Hindi inaasahang error |
| 10 | Ang opsyon sa memory limit ay wala sa pagitan ng 1-100 |
| 11 | Hindi mahanap ang path ng temporary directory |
| 12 | Hindi makapagsulat sa pansamantalang direktoryo |
Pansamantalang direktoryo
Upang matiyak ang matagumpay na pag-resize ng mga file, habang pinoproseso ay maaaring gumamit ang image resizer tool ng pansamantalang direktoryo na matatagpuan sa "$TMPDIR/.gw-image-resizer" o "/tmp/.gw.image-resizer". Maaari itong i-override sa isang umiiral na nasusulat na direktoryo gamit ang opsyonal na command line option na "--temp-dir" (o "-T" bilang pinaikling anyo.)
TANDAAN: Kung ang pansamantalang direktoryo ay hindi nasusulatan (hal. ang kasalukuyang user ay walang sapat na pahintulot) mabibigo ang application kapag kailangang i-cache ang data ng pagproseso ng imahe. Inirerekomendang subukan kung nakapagsusulat ang user sa direktoryo upang maiwasan ang paminsan-minsang mga isyu habang tumatakbo.
Paglilimita ng memory
Bilang default, ang memory allocation na ginagamit para sa pag-resize ng mga imahe ay nililimitahan sa 50% ng memory ng system. Maaari itong i-override sa halagang nasa pagitan ng 1-100 gamit ang opsyonal na command line option na "-l".
Suporta
Kasalukuyang sinusuportahan ng tool ang mga sumusunod:
- JPEG
- PNG
- BMP
- TIFF (tingnan ang kilalang isyu sa GeoTiff)
- GIF
Maaaring mag-load nang tama ang ibang mga file na sinusuportahan ng ImageMagick ngunit hindi pa tahasang naipatupad.
Diskarte sa pag-resize
Lahat ng sinusuportahang image file ay dumaraan sa isang hanay ng mga pamamaraan upang maabot ang target na laki. Halimbawa:
Kalidad ng compression:
Ang mga JPEG / JPG file ay may quality na nakatakda sa 25.
Ang mga PNG file ay nakatakda sa 100.
Ang ibang mga uri ng file ay nananatiling hindi nababago, gayunpaman ang compression method ay palaging nakatakda sa LZW.
Pag-optimize ng GIF
Dahil ang mga GIF ay maaaring binubuo ng maraming larawan at layer, may mga posibleng optimization na maaaring gawin upang mabawasan ang laki ng file.
Kung ang magkakaibang layer ng isang larawan ay may magkakaibang laki, isinasagawa ng Image Magick ang Optimization upang mabawasan ang laki ng file.
Kung hindi, ang GIF ay iko-Coalesce, na pinagsasama ang mga pagkakatulad sa mga larawan sa sequence upang mabawasan ang laki.
Ang transparency ay ino-optimize rin sa puntong ito, pinapalitan ang duplicate na pixel data sa buong sequence ng transparency.
Quantize
Pagkatapos, ang lahat ng larawan ay ika-Quantize, na maglilimita sa bilang ng mga kulay sa 128, at hindi babaguhin ang halaga kung mas mababa na rito.
Downscaling
Kung hindi pa naaabot ang target, babaguhin ang laki ng larawan hanggang sa maabot ito. Ang resolution ay tuloy-tuloy na ibinababa sa 95% ng orihinal hanggang sa maabot ang target o hindi na nito kayang bawasan pa ang resolution.
Mga kilalang isyu
Maaaring alisin ng processing ang locational data mula sa mga pixel sa GeoTIFF. Bukod dito, ang mga karaniwang TIFF ay maaaring magkaroon ng pagbaligtad ng mga kulay sa mga grayscale na larawan.
Mga third-party na library
| Pangalan ng Library | Bersyon ng Library | Uri | Uri ng Lisensya | URL ng Lisensya | URL ng Proyekto | Pinagmulan na URL |
|---|---|---|---|---|---|---|
| System.CommandLine | 2.0.0-beta4.22272.1 | Aklatan | MIT | Link | Link | Link |
| System.CommandLine.Hosting | 0.4.0-alpha.22272.1 | Aklatan | MIT | Link | Link | Link |
| Magick.NET-Q8-AnyCPU | 13.10.0 | Aklatan | Apache-2.0 | Link | Link | Link |
Ginagamit ng tool na Image Resizer ng Glasswall ang NuGet package na "Magick.NET-Q8-AnyCPU" na isang dotnet wrapper para sa ImageMagick.
Ang ImageMagick mismo ay isang libre at open source na tool na ginagamit para sa pag-edit at pagmamanipula ng mga digital na larawan.