Можно ли узнать размер картинки в пикселях?

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Можно ли узнать размер картинки в пикселях?

Сообщение kreator »

Хочется узнать размер картинки в пикселях не загружая её из файла на экран. Это в идеале. Есть ли такая функция WinAPI?
На крайняк может у кого есть самописная функция с фоновой загрузкой. моя идея - заливать файл в скрытое окно с установкой prop:Pixels=True. Может кто уже делал.
Разбираться в структурах всевозможных графических форматов (пусть даже общепринятых) не хочется. Но, если вдруг кто-то разбирался...
We are hard at work… for you. :)
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1376
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 7 раз
Поблагодарили: 1 раз
Контактная информация:

Можно ли узнать размер картинки в пикселях?

Сообщение RaFaeL »

Freeimage не умеет такое?
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

Можно ли узнать размер картинки в пикселях?

Сообщение Дед Пахом »

С уважением, ДП
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7329
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Можно ли узнать размер картинки в пикселях?

Сообщение Игорь Столяров »

RaFaeL писал(а): 28 Сентябрь 2017, 15:49Freeimage не умеет такое?
Умеет. см. пример cfiexam.app, операция Rescale - там показано как получить текущий размер картинки ...
За теми кто отстал - не возвращаться. (С) Кодекс
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Можно ли узнать размер картинки в пикселях?

Сообщение Yufil »

На самый крайний случай помогут свойства Prop:NoHeight и Prop:Nowidth, если эти свойства указаны, ширина и высота установятся по размеру картинки

Что-нибудь вроде

Код: Выделить всё

Image# = Creaate(0,Prop:Image) 
Image#{Prop:Noheight} = True
Image#{Prop:NoWidth} = True 
0{Prop:Pixels} = True 
Image#{Prop:Text} = FileName ! Загрузим картинку
W# = Image#{Prop:Width}   ! Это ширина
H# = Image#{Prop:Height}  ! А это высота 
Destroy(Image#} 
0{Prop:Pixels} = False 
Image не выводится на экран, но размеры выдаёт...
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Можно ли узнать размер картинки в пикселях?

Сообщение kreator »

Yufil писал(а): 28 Сентябрь 2017, 21:08 Image не выводится на экран, но размеры выдаёт...
А по какой причине не выводится? В принципе это самый простой вариант. Единственное боюсь тормозить будет на немаленьких картинках и в сети.
Игорь Столяров писал(а): 28 Сентябрь 2017, 16:13 Умеет. см. пример cfiexam.app, операция Rescale - там показано как получить текущий размер картинки ...
А где взять примеры. Сейчас проект FreeImage разросся, и Клаша стала там не в фаворе. На фтп лежит что-то странное.
Дед Пахом писал(а): 28 Сентябрь 2017, 16:05 https://stackoverflow.com/questions/226 ... ut-loading
Правильный путь. В инете есть примеры не только для png. Как всегда хотел отделаться дешёвым способом. Кстати, Total Commander отображает эту информацию в типсах. И много ещё чего там отображает. Неужели все типы файлов обрабатывает?
We are hard at work… for you. :)
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7329
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Можно ли узнать размер картинки в пикселях?

Сообщение Игорь Столяров »

kreator писал(а): 28 Сентябрь 2017, 21:30А где взять примеры. Сейчас проект FreeImage разросся, и Клаша стала там не в фаворе. На фтп лежит что-то странное.
Насколько я знаю проект FreeImage не разросся, а сдох окончательно.
Последнее символическое обновление было 2 года назад ...

А полный комплект для Clarion вот здесь: http://www.clarionfreeimage.com/download.html
За теми кто отстал - не возвращаться. (С) Кодекс
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Можно ли узнать размер картинки в пикселях?

Сообщение Yufil »

>> А по какой причине не выводится? В принципе это самый простой вариант. Единственное боюсь тормозить будет на немаленьких картинках и в сети.

Чтобы выводился, нужно ещё сказать Unhide(Image#). А для скорости ещё 0{Prop:Buffer}=1 хорошо. Наверное...
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Можно ли узнать размер картинки в пикселях?

Сообщение Yufil »

Image# = Creaate(0,Prop:Image) читается как Image# = Create(0,Create:Image)
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Можно ли узнать размер картинки в пикселях?

Сообщение kreator »

Игорь Столяров писал(а): 28 Сентябрь 2017, 21:34 А полный комплект для Clarion вот здесь: http://www.clarionfreeimage.com/download.html
Игорь, дальше-то ходили? Ссылка ведёт в - http://freeimage.sourceforge.net/download.html. А там и сырцы, и примеры на Дельфи, C, VB. Только про Клашу ни слова :( .
Yufil писал(а): 29 Сентябрь 2017, 10:11 Image# = Creaate(0,Prop:Image) читается как Image# = Create(0,Create:Image)
Да, понятно. Надо тест скорости прогнать. Что-то сомневаюсь я в быстродействии. Всё равно же в память тащится.
We are hard at work… for you. :)
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

Можно ли узнать размер картинки в пикселях?

Сообщение gopstop2007 »

kreator писал(а): 29 Сентябрь 2017, 10:55 Игорь, дальше-то ходили? Ссылка ведёт в - http://freeimage.sourceforge.net/download.html. А там и сырцы, и примеры на Дельфи, C, VB. Только про Клашу ни слова :( .
там же вроде на http://www.clarionfreeimage.com/download.html вторым пунктом написано, что с http://freeimage.sourceforge.net/ надо брать только FreeImage.DLL, а FreeImage.lib не скачивать а использовать из clarionfreeimage.com
сам так использую :)
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Можно ли узнать размер картинки в пикселях?

Сообщение kreator »

Нашёл. Только в "Rescale" пусто. И App cfiexam не компилируется в десятке, куча ошибок.
We are hard at work… for you. :)
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7329
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Можно ли узнать размер картинки в пикселях?

Сообщение Игорь Столяров »

kreator писал(а): 29 Сентябрь 2017, 12:57Нашёл. Только в "Rescale" пусто. И App cfiexam не компилируется в десятке, куча ошибок.
Да, что же всё так не просто ... ;)

- По указанным ссылкам загрузил шаблоны и классы.
- Установил, зарегистрировал в C10 шаблон.
- В C10 открыл пример (с конвертацией из C6)
- С первого раза собрал, никаких проблем и ошибок ...
- Снимок прикрепляю.

fi.jpg
За теми кто отстал - не возвращаться. (С) Кодекс
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Можно ли узнать размер картинки в пикселях?

Сообщение Yufil »

1. Либу надо сделать libmaker'ом, иначе версия либы может не соответствовать dll
2. А что, FreeImage не читает файл с диска ?
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Можно ли узнать размер картинки в пикселях?

Сообщение kreator »

Дома всё получилось с полпинка.
Yufil писал(а): 29 Сентябрь 2017, 13:52 2. А что, FreeImage не читает файл с диска ?
Похоже на то. В сырцах на с есть функция FreeImage_GetInfoHeader, вытаскивает много чего. Как работает пока не понял. По тексту, похоже, достаёт из структуры (может я и неправ). Надо, наверно, поискать где туда пишется инфа.
We are hard at work… for you. :)
Ответить