Saya memiliki gambar dengan resolusi 18984x28591px tapi saya tidak bisa membukanya dengan Paint atau dengan Pixlr Editor untuk mengurangi ukurannya.
Bagaimana saya bisa mengonversi atau membuka gambar besar ini di laptop saya?
Saya memiliki gambar dengan resolusi 18984x28591px tapi saya tidak bisa membukanya dengan Paint atau dengan Pixlr Editor untuk mengurangi ukurannya.
Bagaimana saya bisa mengonversi atau membuka gambar besar ini di laptop saya?
Jawaban:
Saya menggunakan ImageMagick di Ubuntu untuk mengubah ukuran gambar-gambar besar itu.
convert -resize 10% source.jpg dest.jpg
Butuh beberapa saat, tetapi bekerja dengan 1 GByte RAM, alat ini menciptakan file swap-seperti 4,7 Gbyte untuk dirinya sendiri.
Informasi lebih lanjut ada di AskUbuntu .
convert -resize 1898x2859 ...
Secara teoritis, sebagian besar format gambar dapat diturunkan secara progresif, tanpa memuat seluruh gambar ke dalam memori, namun saya tidak tahu alat apa pun yang benar-benar mengimplementasikan fitur tersebut, kecuali untuk JPEG: ini istimewa karena Anda tidak bisa hanya menurunkan skala tanpa memuat resolusi penuh, tetapi juga downscale tanpa decoding resolusi penuh, berkat penggunaan kreatif DCT (JPEG dikodekan dalam domain frekuensi, yang berarti tidak harus diterjemahkan ke resolusi yang sama persis seperti gambar aslinya).
The standar JPEG decoding tool (baris perintah, libjpeg-progs paket di Linux, mencari djpeg.exe untuk Windows) akan mengurangi ukuran JPEG besar sebelum "biasa" aplikasi bahkan dapat menyelesaikan loading itu:
djpeg -scale 1/8 huge_image_that_will_not_fit_in_your_ram.jpg >downscaled.ppm
Saya juga telah melihat opsi downscale-while-loading di beberapa aplikasi GUI, tetapi tidak dapat mengingatnya saat ini.
Membandingkan penggunaan memori dan waktu pemrosesan ImageMagick vs djpeg menurunkan skala gambar besar (perpipaan ke cjpeg , sehingga gambar yang dihasilkan juga jpg, untuk perbandingan yang adil dengan konversi )
$ display -verbose input.jpg
input.jpg JPEG 13114x11722 13114x11722+0+0 8-bit sRGB 30.75MB 6.690u 0:06.699
$ /usr/bin/time -f "time=%E mem=%MK" bash -c "convert input.jpg -scale '12.5%' output.jpg"
time=0:10.72 mem=1225844K
$ /usr/bin/time -f "time=%E mem=%MK" bash -c "djpeg -scale 1/8 input.jpg | cjpeg > output2.jpg"
time=0:00.88 mem=1412K
1,2GB vs 1,4MB dan lebih dari 10 kali lebih lambat - dan ini pada gambar 13k x 11k yang relatif kecil yang dapat ditampung sepenuhnya dalam RAM sehingga tidak terjadi pertukaran.
Di sisi lain, menggunakan djpeg untuk downscaling juga memiliki keterbatasannya sendiri: pilihan scaling factor terbatas dan metode resampling tidak dapat diubah.
Anda juga dapat mencoba menggunakan Picture Resizer di Windows (Saya suka alat ini)
Anda cukup drag dan drop gambar pada EXE sederhana ini. Ini sangat berguna jika Anda memiliki banyak gambar untuk dikonversi karena Anda dapat melakukan banyak pada satu waktu.
Semua konfigurasi dilakukan melalui penamaan EXE yang merupakan IMO yang brilian
Saya belum pernah mencobanya dengan file besar.