Как я могу открыть очень, очень большое изображение, чтобы уменьшить его размер?

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

Как я могу преобразовать или открыть это большое изображение на своем ноутбуке?

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

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

Проблема не в DPI, а в размере файла, наверное. Он должен быть больше 1,5 ГБ! Это так?
размер изображения 31,3 МБ (32 846 155 байт)
Извините, не размер файла. Размер в оперативной памяти. Если вы декодируете это в нормальное представление, вам потребуется 18984x28591x3 байта ~= 1,5 ГБ. Вам понадобится как минимум этот объем оперативной памяти только для того, чтобы открыть его. И, наверное, еще 1 Гбайт на манипуляции с ним. И 1 ГБ для ОС. Что-то такое.
это моя личная фотография, могу ли я отправить ее вам на Google диск, чтобы уменьшить размер, если это возможно, и заранее спасибо
Да, я могу попробовать. :-) Вы также можете попробовать пакетный конвертер IrfanView, это может помочь.
Попробуйте загрузить его на Facebook, Flickr или Google Photos. Эти сервисы уменьшат размер изображения, чтобы вы могли просто загрузить его обратно в уменьшенном формате. Если это не сработает, я подозреваю, что у вас поврежден файл.

Ответы (3)

Я использовал ImageMagick в Ubuntu, чтобы изменить размер этих больших изображений.

convert -resize 10% source.jpg dest.jpg

Это заняло некоторое время, но работало с 1 ГБ ОЗУ, инструмент создал для себя 4,7-гигабайтный файл подкачки.

Больше информации есть на AskUbuntu .

Вы также можете указать конкретное разрешение, напримерconvert -resize 1898x2859 ...
Также доступно на OSX.
Существует также версия для Windows.

Теоретически большинство форматов изображений можно уменьшать прогрессивно, без загрузки всего изображения в память, однако я не знаю каких-либо инструментов, реально реализующих такую ​​возможность, кроме 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 и djpeg при уменьшении масштаба большого изображения (конвейерное преобразование в cjpeg , поэтому результирующее изображение также является jpg для справедливого сравнения с convert )

$ 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 раз медленнее — и это было на относительно небольшом образе 13k x 11k, который мог полностью поместиться в ОЗУ, поэтому подкачки не происходило.

С другой стороны, использование djpeg для уменьшения масштаба также имеет свои ограничения: выбор коэффициента масштабирования ограничен, и метод передискретизации нельзя изменить.

Вы также можете попробовать использовать Picture Resizer в Windows (мне нравится этот инструмент)

Вы просто перетаскиваете изображение в этот простой EXE-файл. Это особенно полезно, если вам нужно преобразовать много изображений, поскольку вы можете конвертировать их одновременно.

Вся конфигурация выполняется с помощью именования EXE, что является блестящим IMO.

Я никогда не пробовал это с огромным файлом.