Як я можу відкрити дуже-дуже велике зображення, щоб зменшити його розмір?


14

У мене є зображення з роздільною здатністю 18984x28591px, але я не можу відкрити його за допомогою Paint або за допомогою редактора Pixlr, щоб зменшити його розмір.

Як я можу конвертувати або відкрити це велике зображення на своєму ноутбуці?

введіть тут опис зображення

введіть тут опис зображення


4
Це не проблема DPI, це, мабуть, розмірність файлу. Він повинен бути більше 1,5 Гбайт! Невже це так?
TFuto

розмір зображення - 31,3 Мб (32,846,155 байт)
Educ

2
Вибачте, не розмір файлу. Розмір оперативної пам’яті. Якщо ви розшифруєте це для звичайного подання, для цього потрібно 18984x28591x3 байт ~ = 1,5 Гбіт. Вам знадобиться принаймні ця кількість оперативної пам’яті просто для її відкриття. І, мабуть, ще 1 Гбайт для маніпулювання ним. І 1 Гбайт для ОС. Щось схоже.
TFuto

це моя особиста картинка, чи можу я надіслати її вам google drive, щоб зменшити розмір, якщо це можливо, і заздалегідь дякую
Educ

2
Так, я можу спробувати. :-) Ви також можете спробувати пакетний перетворювач IrfanView, це може допомогти.
TFuto

Відповіді:


29

Я використовував ImageMagick на Ubuntu, щоб змінити розмір великих зображень.

convert -resize 10% source.jpg dest.jpg

Це зайняло деякий час, але працюючи з 1 Гбайт оперативної пам’яті, інструмент створив 4,7 Гбайт-файл, подібний до свопу.

Більше інформації про AskUbuntu .


3
Ви також можете надати йому конкретну резолюцію, наприкладconvert -resize 1898x2859 ...
Майкл Хемптон

2
Також доступний на OSX.
o0 '.

1
Також є версія для Windows.
Тонні

9

Теоретично більшість форматів зображень можна зменшувати поступово, не завантажуючи все зображення в пам'ять, однак я не знаю жодних інструментів, які реально реалізують таку функцію, крім JPEG: вона особлива тим, що ви можете не тільки зменшити масштаб без завантаження повного дозволу, але також зменшення шкали без декодування повного дозволу, завдяки творчому використанню DCT (JPEG кодується в частотній області, а це означає, що його не потрібно декодувати до такої ж роздільної здатності, що і вихідне зображення).

Інструмент декодування JPEG за замовчуванням (командний рядок, пакет libjpeg-progs в Linux, шукайте djpeg.exe для Windows) знизить масштабний JPEG, перш ніж "звичайна" програма може навіть закінчити завантаження:

djpeg -scale 1/8 huge_image_that_will_not_fit_in_your_ram.jpg >downscaled.ppm

Я також бачив варіант зменшення масштабу під час завантаження в деяких додатках графічного інтерфейсу, але наразі не можу його згадати.

Орієнтир!

Порівняння використання пам'яті та часу обробки ImageMagick vs djpeg зменшення масштабу великого зображення (трубопровід до cjpeg , тому отримане зображення також jpg, для справедливого порівняння з перетворенням )

$ 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,2 ГБ проти 1,4 Мбайт і в 10 разів повільніше - і це було на порівняно невеликому зображенні в 13 К х 11 К, яке могло повністю вміститися в ОЗУ, так що не відбулося заміну.

З іншого боку, використання djpeg для зменшення масштабу також має свої обмеження: вибір коефіцієнта масштабування обмежений, а метод перекомпонування неможливо змінити.


7

Ви також можете спробувати використати Picture Resizer у Windows (я люблю цей інструмент)

Ви просто перетягуєте зображення на цьому простому EXE. Це особливо корисно, якщо у вас є багато зображень для перетворення, оскільки ви можете робити багато за один раз.

Весь конфігурація робиться через іменування EXE, що є геніальним IMO

Я ніколи не пробував це з величезним файлом, хоча.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.