FreeImage размер сохраненного файла картинки
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
-
- ✯ Ветеран ✯
- Сообщения: 1704
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 9 раз
- Поблагодарили: 4 раза
FreeImage размер сохраненного файла картинки
Вопрос сообществу, файл TPS c полем BLOB в котором сохраняются картинки, перед отправкой на фтп сервер помощью с сабжа сохраняю картинку на диск размер картинки равен 100кБ, с помощью программы например XnView открываю эту же картинку и пере сохраняю эту же картинку, размер равен 22кБ. Смотрю чем отличается картинка 100кБ и 22кБ, вижу разницу в параметрах пиксель на дюйм - 100кБ(???х???), в 22кБ(72х72). Какие и где параметры в FreeImage нужно задать для получения картинки размера равного 22кБ?
Размеры картинок и прочие параметры, кроме указанных мною, полностью идентичны.
Размеры картинок и прочие параметры, кроме указанных мною, полностью идентичны.
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
-
- ✯ Ветеран ✯
- Сообщения: 1014
- Зарегистрирован: 08 Июль 2005, 6:48
- Откуда: Россия
- Поблагодарили: 1 раз
FreeImage размер сохраненного файла картинки
http://www.clarionfreeimage.com/
если не важно, что только FreeImage http://forum.clarionlife.net/phpbb/view ... e&start=15, то посмотреть ImageEx
UPYou may also use the FreeImage base class without the image control for those times when you don't need to display the image. For example, it works perfectly to create thumbnails of all images in a folder.
The following code is all that's required to load an image and create a thumbnail 64 pixels wide using a BSpline resampling filter, and then save it in a different file.
ThumbImage FreeImageClass
Code
If ThumbImage.iImage.Load('C:\images\ImageFile.jpg')
ThumbImage.iImage.Thumbnail(64, FILTER_BSPLINE)
ThumbImage.iImage.SaveAs('C:\images\ImageFileThumb.jpg')
End
Here are some of the other operations that the base class supports:
если не важно, что только FreeImage http://forum.clarionlife.net/phpbb/view ... e&start=15, то посмотреть ImageEx
Код: Выделить всё
if ~'.png' = ExtractFileExt(clip(longpath(PATH:Photo))&'\'&clip(loc:Фотография1)) ! не PNG
ThumbFeatures(clip(longpath(PATH:Photo))&'\'&clip(loc:Фотография1),PWidth,PHeight,'_thm') ! делаем из стандартной
...
FreeImage размер сохраненного файла картинки
Я менял размер через rescale
Картинка формируется в трёх разных размерах - маленьком, среднем и большом
Картинка формируется в трёх разных размерах - маленьком, среднем и большом
Код: Выделить всё
cfiObject4.iImageControl.Reset()
W=352
H=264
cfiObject4.iImage.Rescale(W,H,2)
FileName= Main:Id & '_' & MIM:Id & '.jpg'
!S.Cat('<13,10><<IMAGE FILE="' & Ansi2Html(FileName) & '"/>')
FileName=LongPath() & '\Image\' & fileName
cfiObject4.iImage.Save(FileName,2)
MsgQ:S='Картинка ' & FileName
Do AddMsgQ
!
cfiObject4.iImageControl.Reset()
W=176
H=132
cfiObject4.iImage.Rescale(W,H,2)
FileName= Main:Id & '_' & MIM:Id & '_medium.jpg'
!S.Cat('<13,10><<IMAGE TYPE="MEDIUM" FILE="' & Ansi2Html(FileName) & '"/>')
FileName=LongPath() & '\Image\' & fileName
cfiObject4.iImage.Save(FileName,2)
!
W=72
H=54
cfiObject4.iImage.Rescale(W,H,2)
FileName= Main:Id & '_' & MIM:Id & '_small.jpg'
!S.Cat('<13,10><<IMAGE TYPE="SMALL" FILE="' & Ansi2Html(FileName) & '"/>')
FileName=LongPath() & '\Image\' & fileName
cfiObject4.iImage.Save(FileName,2)
!
-
- ✯ Ветеран ✯
- Сообщения: 1704
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 9 раз
- Поблагодарили: 4 раза
FreeImage размер сохраненного файла картинки
Мне не надо менять размер картинки,
мой вопрос: разный размер(вес) файлов одной и той же картинки с одинаковым размером (700х700), в моем случае картинка сохраняется в JPG
Вот два файла для сравнения
файл с большим размером файла https://mega.nz/#!yYBxDZbR!SijZ4PP9DH2u ... YVMzoeFHKU
меньшим https://mega.nz/#!zFpDUaQS!LPoKp-P8S04y ... LZTBL5f-rc
Ал, Ваш код создает миниатюру размером 64ThumbImage FreeImageClass
Code
If ThumbImage.iImage.Load('C:\images\ImageFile.jpg')
ThumbImage.iImage.Thumbnail(64, FILTER_BSPLINE)
ThumbImage.iImage.SaveAs('C:\images\ImageFileThumb.jpg')
End
мой вопрос: разный размер(вес) файлов одной и той же картинки с одинаковым размером (700х700), в моем случае картинка сохраняется в JPG
Вот два файла для сравнения
файл с большим размером файла https://mega.nz/#!yYBxDZbR!SijZ4PP9DH2u ... YVMzoeFHKU
меньшим https://mega.nz/#!zFpDUaQS!LPoKp-P8S04y ... LZTBL5f-rc
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
-
- ✯ Ветеран ✯
- Сообщения: 5011
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 22 раза
FreeImage размер сохраненного файла картинки
Открыл файлы Corel'ом (последним). В свойствах совершенно одинаковая информация (к слову разрешение 96х96, встроенных объектов нет). У меня есть подозрение, что качество изображение разное. Правда, на глаз не очень заметно, можно сказать не заметно совсем. Картинка такая (плавные переходы цвета, цвета не сильно разные), что jpeg ещё лучше может упаковать без заметного ухудшения качества. JPEG плохо работает на полноцветной картинке, естественно, при качестве не 100%. Может такие картинки сравнить? И ещё. Сохраняю тем же Corel'ом при 100% качестве, оригинальная становится меньше (112кб), результат - больше (89кб).
We are hard at work… for you.
-
- ✯ Ветеран ✯
- Сообщения: 1014
- Зарегистрирован: 08 Июль 2005, 6:48
- Откуда: Россия
- Поблагодарили: 1 раз
FreeImage размер сохраненного файла картинки
Согласен, просмотрел , - пора в отпуск))gopstop2007 писал(а):Мне не надо менять размер картинки,Ал, Ваш код создает миниатюру размером 64ThumbImage FreeImageClass
Code
If ThumbImage.iImage.Load('C:\images\ImageFile.jpg')
ThumbImage.iImage.Thumbnail(64, FILTER_BSPLINE)
ThumbImage.iImage.SaveAs('C:\images\ImageFileThumb.jpg')
End
мой вопрос: разный размер(вес) файлов одной и той же картинки с одинаковым размером (700х700), в моем случае картинка сохраняется в JPG
Вот два файла для сравнения
файл с большим размером файла https://mega.nz/#!yYBxDZbR!SijZ4PP9DH2u ... YVMzoeFHKU
меньшим https://mega.nz/#!zFpDUaQS!LPoKp-P8S04y ... LZTBL5f-rc
Но тем не менее попробуй сделать миниатюру 700*700...
да, приведенный выше код не мой - с сайта по ссылке...
по теме - думаю надо смотреть на FreeImage Bitmap function... или на ImageEx - "поиграть" с до устраивающего результата с fi.Iimage.GetBPP() ... fi.Iimage.ConvertColorDepth(FI_24BIT,,) ... fi.Iimage.SetSaveOption(JpegQuality)...
FreeImage размер сохраненного файла картинки
Хмм, собственно, для отправки по FTP эти картинки и предназначались.
Каждая картинка шла в трёх размерах - маленькая, средняя и большая, от 10К до 300К
Программа работала (а может быть, и работает до сих пор), а количеством пикселов на дюйм даже не поинтересовался.
Оно надо ?
Каждая картинка шла в трёх размерах - маленькая, средняя и большая, от 10К до 300К
Программа работала (а может быть, и работает до сих пор), а количеством пикселов на дюйм даже не поинтересовался.
Оно надо ?
FreeImage размер сохраненного файла картинки
Кстати, ещё вопрос - а каким способом картинка сохранялась в Blob? Дело в том, что при сохранении картинки с экрана можно получить битмап картиники, а можно исходник файла. Это криво и непонятно описано в параметре Prop:PrintMode
Например, если я пишу
То в Blob идёт не битмэп, а картинка, которую я отражал. А если ещё чуть вникнуть и положить в Blob собственно файл с картинкой, он будет выведен и он же сохранён, примерно так
Таким образом, на экран выводится та самая картинка, которая лежит в базе.
Скорее всего я всё неправильно понял и дело совсем не в этом
Например, если я пишу
Код: Выделить всё
DOC FILE,DRIVER('TOPSPEED',Glo:DriverOptions),OWNER(Glo:OwnerName),NAME(Fn:Doc),PRE(DOC),BINDABLE,CREATE,THREAD
DIR_FNAME KEY(DOC:DIR,DOC:FNAME),DUP,NOCASE,OPT
VALUE BLOB,BINARY
Record RECORD,PRE()
DIR CSTRING(16)
FNAME CSTRING(260)
Date ULONG
Time ULONG
END
END
....
?Image{Prop:PrintMode}=3
?Image{Prop:ImageBlob}=Doc:Value{Prop:Handle}
Код: Выделить всё
?Image{Prop:PrintMode}=3
?Image{Prop:Text}=Glo:MainDir & '\PIC\' & DirQ:Name
Doc:Date=DirQ:Date2
Doc:Time=DirQ:Time
Doc:Value{Prop:Handle}=?Image{Prop:ImageBlob}
PackBlob(Doc:Value)
Access:Doc.Update()
Скорее всего я всё неправильно понял и дело совсем не в этом
-
- ✯ Ветеран ✯
- Сообщения: 1014
- Зарегистрирован: 08 Июль 2005, 6:48
- Откуда: Россия
- Поблагодарили: 1 раз
FreeImage размер сохраненного файла картинки
про 3 варианта размера - тут видимо особо ничего не придумаешь, у всех примерно похоже
http://www4.cs.fau.de/Services/Doc/grap ... bjpeg.html http://www.quanser.com/Products/quarc/d ... cense.html http://newsgroup.xnview.com/viewtopic.php?f=79&t=23119 http://graphicssoft.about.com/od/format ... sfacts.htm
а по поводу примера с XnView - у неё в описании указано , поисковик выдал много чего:The JPEG functions are based in part on the work of the Independent JPEG group
The PNG functions are based in part on the work of the Group 42, Inc
This software use the compression library (ZLIB) of Jean-loup Gailly and Mark Adler
http://www4.cs.fau.de/Services/Doc/grap ... bjpeg.html http://www.quanser.com/Products/quarc/d ... cense.html http://newsgroup.xnview.com/viewtopic.php?f=79&t=23119 http://graphicssoft.about.com/od/format ... sfacts.htm
-
- ✯ Ветеран ✯
- Сообщения: 1704
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 9 раз
- Поблагодарили: 4 раза
FreeImage размер сохраненного файла картинки
Спасибо за подробные разъяснения с примерами кода Но в данном случае, проще отослать картинку (большую), а из нее нарезаются маленькие на сервере Opencart-омYufil писал(а):Хмм, собственно, для отправки по FTP эти картинки и предназначались.
Каждая картинка шла в трёх размерах - маленькая, средняя и большая, от 10К до 300К
Программа работала (а может быть, и работает до сих пор), а количеством пикселов на дюйм даже не поинтересовался.
Оно надо ?
Хороший вопросYufil писал(а):Кстати, ещё вопрос - а каким способом картинка сохранялась в Blob?
Когда отсылаются 3 000-10 000 картинок, вес имеет значение, и еще есть ограничение на Opencart, фото-картинки больше 300кб не создаются автоматом маленькие картинке на сервере, правда от хостинга это тоже зависит.
Интересно, спасибо посмотрюАл писал(а): а по поводу примера с XnView - у неё в описании указано, поисковик выдал много чего:The JPEG functions are based in part on the work of the Independent JPEG group
The PNG functions are based in part on the work of the Group 42, Inc
This software use the compression library (ZLIB) of Jean-loup Gailly and Mark Adler
http://www4.cs.fau.de/Services/Doc/grap ... bjpeg.html http://www.quanser.com/Products/quarc/d ... cense.html http://newsgroup.xnview.com/viewtopic.php?f=79&t=23119 http://graphicssoft.about.com/od/format ... sfacts.htm
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
-
- ✯ Ветеран ✯
- Сообщения: 1014
- Зарегистрирован: 08 Июль 2005, 6:48
- Откуда: Россия
- Поблагодарили: 1 раз
FreeImage размер сохраненного файла картинки
самое очевидное - размер файла проверять при записи в базу или сразу перед отправкой и не прошедшие отбор перед отправкой дополнительно обрабатывать (JpegQuality, ColorDepth,...), пока размер в норму не станет укладываться?фото-картинки больше 300кб не создаются автоматом маленькие картинке на сервере