Bagaimana saya bisa membuka gambar yang sangat, sangat besar untuk berhemat?

14

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?

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Educ
sumber
4
Bukan DPI yang menjadi masalah, mungkin dimensi file. Seharusnya lebih dari 1,5 GByte! Apakah begitu?
TFuto
ukuran gambar adalah 31,3 MB (32.846.155 byte)
Educ
2
Maaf, bukan dimensi file. Ukuran dalam RAM. Jika Anda mendekode itu ke representasi normal, itu membutuhkan 18984x28591x3 byte ~ = 1,5 GByte. Anda membutuhkan setidaknya jumlah RAM ini hanya untuk membukanya. Dan mungkin 1 Gbyte lain untuk memanipulasinya. Dan 1 GByte untuk OS. Sesuatu seperti itu.
TFuto
ini gambar pribadi saya, bisakah saya mengirimkannya kepada Anda melalui google drive untuk mengurangi ukurannya jika memungkinkan dan terima kasih sebelumnya
Educ
2
Ya, saya bisa mencoba. :-) Anda juga bisa mencoba batch converter IrfanView, mungkin membantu.
TFuto

Jawaban:

29

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 .

TFuto
sumber
3
Anda juga dapat memberikan resolusi spesifik, misalnyaconvert -resize 1898x2859 ...
Michael Hampton
2
Juga tersedia di OSX.
o0 '.
1
Ada juga versi Windows.
Tonny
9

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.

Tolok Ukur!

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.

szulat
sumber
7

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.

mateoc
sumber