Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » wx.Python как можно вытащить уменьшенную копию из jpg-файла? [RSS Feed]

#1 Дек. 16, 2007 17:53:44

FoxPython
От:
Зарегистрирован: 2007-09-15
Сообщения: 71
Репутация: +  0  -
Профиль   Отправить e-mail  

wx.Python как можно вытащить уменьшенную копию из jpg-файла?

Я уж задал такой вопрос в одной из других тем, уж прошу прощенья, но может быть в новой теме быстрее ответит кто-нибудь.

Насколько я догадываюсь, jpg-файлы, во всяком случае те, что из фотоаппарата, содержат в себе мини-копию самого себя, используемую для быстрого предпросмотра. Если я не ошибаюсь в этом, то можно ли как-нибудь посредством wx.питона вытащить эту мини-копию?

Пробую написать программку, которая выдаёт в лист-контроль список jpg-файлов и их мини-изображений. Пока что додумался делать мини-изображения при помощи Rescale, т.е. каждый раз при старте программы она просматривает список файлов в текущей директории, считывает каждый jpg-файл, Rescale'ит их в нужный маленький размер и сохраняет уменьшенные копии файлов в массив. Но рескалить файлы размером 2-3, а то и более мегабайт - дело небыстрое. Программа выходит тормозная - долго запускается (файлы перелопачивает) прежде чем главное окно появится.

Есть идеи? Заранее спасибо.



Офлайн

#2 Дек. 17, 2007 13:07:40

FoxPython
От:
Зарегистрирован: 2007-09-15
Сообщения: 71
Репутация: +  0  -
Профиль   Отправить e-mail  

wx.Python как можно вытащить уменьшенную копию из jpg-файла?

Никак? :(



Офлайн

#3 Дек. 17, 2007 15:19:35

pythonwin
От:
Зарегистрирован: 2006-07-18
Сообщения: 1294
Репутация: +  0  -
Профиль   Отправить e-mail  

wx.Python как можно вытащить уменьшенную копию из jpg-файла?

посмотри PIL - там можно уменьшать рисунки. также можешь посмотреть imagemagick

FoxPython
Насколько я догадываюсь, jpg-файлы, во всяком случае те, что из фотоаппарата, содержат в себе мини-копию самого себя, используемую для быстрого предпросмотра.
впервые слышу - можно ссылку?



Офлайн

#4 Дек. 18, 2007 05:32:00

FoxPython
От:
Зарегистрирован: 2007-09-15
Сообщения: 71
Репутация: +  0  -
Профиль   Отправить e-mail  

wx.Python как можно вытащить уменьшенную копию из jpg-файла?

pythonwin
PIL и ImageMagik, я так думаю - это самостоятельные программы? Мне не это нужно.
Rescale - не программа, а метод wx.Python'а относящийся к объекту wx.Image (если не подзабыл, пока ещё в памяти всё не уложилось).
Вот им я и делаю уменьшенные копии jpg-файлов, для того чтобы затем можно было сделать список файлов с картинками в wx.ListCtrl.

Насчёт наличия уменьшенной копии самого себя в jpg-файлах - это лишь моё предположение. Имеется программка, которая позволяет редактировать exif jpg-файлов. Так вот, если удалить весь exif, то в этой же программе пропадёт уменьшенная копия-предпросмотр такого jpg-файла, а windows'у тоже придётся заново перерисовать предпросмотры в explorer'е для таких файлов (если открыть папку с jpg-файлами, то, как известно, винда имеет один из видов отображения файлов-рисунков “эскизы страниц”. В окошке с открытой папкой и jpg-файлами в ней при вышеописанной процедуре на время и исчезают эти самые “эскизы”. Затем винда срочно их перерисовывает. Толи сама так быстро делает копии уменьшенные, то ли ещё как).



Офлайн

#5 Дек. 19, 2007 17:59:24

setoy
От:
Зарегистрирован: 2006-07-20
Сообщения: 34
Репутация: +  0  -
Профиль   Отправить e-mail  

wx.Python как можно вытащить уменьшенную копию из jpg-файла?

>>PIL и ImageMagik, я так думаю - это самостоятельные программы? Мне не это нужно.

PIL = Python Image Library
Ето то, что тебе нужно. http://www.pythonware.com/products/pil/
Лень спросить google?

>> Насколько я догадываюсь, jpg-файлы, во всяком случае те, что из фотоаппарата, содержат в себе мини-копию самого себя, используемую для быстрого предпросмотра.

Нечего подобнее. ето простая побитовая компресия.

>>винда имеет один из видов отображения файлов-рисунков “эскизы страниц”. В окошке с открытой папкой и jpg-файлами в ней при вышеописанной процедуре на время и исчезают эти самые “эскизы”

Как винд работать с thumbsnail - это дело самому винду. Полагаю, единствений начин делать это - обработяеть их и сохраняю умаленний jpeg как kэш куда-то. То же самое можешь сделать и ты.

Я думаю, тебя нужно читать чуть побольше :)

Извини про не очень хороший руский язык :)



Офлайн

#6 Дек. 19, 2007 19:37:20

poltergeist
От:
Зарегистрирован: 2007-02-28
Сообщения: 522
Репутация: +  0  -
Профиль   Отправить e-mail  

wx.Python как можно вытащить уменьшенную копию из jpg-файла?

Винда пишет превьюшки изображений в скрытый файл Thumbs.db в той же директории, естественно, что после малейшего изменения даже просто метаданных файла, превьюшки генерятся заново для этих файлов. Винда сама их скалирует, тем более виста, которая может показывать превьюхи разного размера.

Но эта инфа ни к чему, юзай google.



Отредактировано (Дек. 19, 2007 19:37:41)

Офлайн

#7 Дек. 20, 2007 05:20:06

FoxPython
От:
Зарегистрирован: 2007-09-15
Сообщения: 71
Репутация: +  0  -
Профиль   Отправить e-mail  

wx.Python как можно вытащить уменьшенную копию из jpg-файла?

setoy
poltergeist
Спасибо за информацию. Про Thumbs.db я, вобщем-то, догадывался.


setoy
обработяеть их и сохраняю умаленний jpeg как kэш куда-то
Вобщем, я практически так и делаю. Просто папка-то в моей программе будет открываться каждый раз разная, с любого носителя. Не запоминать же мне превьюшки в каждой папке, тем более, что моя же программа может переименовать файлы. Программа нужна для автоматического переименования файлов, чтобы подготовить их для печати в фотолабе. Т.е. бестолку сохранять куда-то превьюшки, чтобы потом их снова можно было взять быстренько. В итоге мне придётся каждый раз при заходе в программу создавать превьюшки и хранить в списке. А это дело тормозное. Винда побыстрее управляется с этим.

А PIL глянем, может чем поможет.



Офлайн

#8 Дек. 20, 2007 10:20:54

setoy
От:
Зарегистрирован: 2006-07-20
Сообщения: 34
Репутация: +  0  -
Профиль   Отправить e-mail  

wx.Python как можно вытащить уменьшенную копию из jpg-файла?

using PIL, думаю можно улучшить быстродействие в несколько раз, но все так не ожидай чудес :)


 import Image
im = Image.open(infile)
im.thumbnail(size)
im.save(outfile, "JPEG")
Я не знаю что делает этот ReScale, но полагаю, что ничего не теряется в процессе, так что уменьшение размерами приводить к более высокая резолюция. А маленький картинки с высокая резолюция можно быть больше тормозные, чем большие изображение с ниская резолюция :)



Офлайн

  • Начало
  • » GUI
  • » wx.Python как можно вытащить уменьшенную копию из jpg-файла?[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version