|
как считать разрешение картинки
|
|||
---|---|---|---|
#18+
всем доброго времени суток! я считываю картинку в blob. Как из этого blob-а получить разрешение картинки?(по горизонтали и по вертикали) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2011, 20:32 |
|
как считать разрешение картинки
|
|||
---|---|---|---|
#18+
на самом деле я знаю алгоритм считывания, но я не могу перевести его с делфи на билдер... в делфи используется filestream(если не ошибаюсь), функции SWAP и ORD, применяемые к считанным из filestream данным типа word. В общем, я в таком расстройстве, что даже не могу толком объяснить..может быть, кто-то знает, как на билдере считывать разрешение? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2011, 21:02 |
|
как считать разрешение картинки
|
|||
---|---|---|---|
#18+
Лампочка, Однажды мне пришлось делать тоже самое, но я тогда обошелся грубым методом тыка: на окне создавал объект picture с настиройками, чтобы объект под картинку растягивался, запихивал картинку в него, считывал размеры в PBUnit'ах и пересмчитывал их в пиксели. Оно, конечно, криво и в корне не правильно, но работает :) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2011, 21:23 |
|
как считать разрешение картинки
|
|||
---|---|---|---|
#18+
Спасибо,Икар! мне программер, который задачу ставит, не простит этого. А вот и код на Делфи. Но убейте меня - я не могу перевести его на билдер... procedure GetResJpg(JPGFile: string); const BufferSize = 50; var Buffer: string; Index: integer; FileStream: TFileStream; HorzRes, VertRes: Word; DP: Byte; Measure: string; begin FileStream := TFileStream.Create(JPGFile, fmOpenReadWrite); try SetLength(Buffer, BufferSize); FileStream.Read(buffer[1], BufferSize); Index := Pos('JFIF' + #0$00,buffer); if Index > 0 then begin FileStream.Seek(Index + 6, soFromBeginning); FileStream.Read(DP, 1); case DP of 1: Measure := 'DPI'; //Dots Per Inch 2: Measure := 'DPC'; //Dots Per Cm. end; FileStream.Read(HorzRes, 2); // x axis HorzRes := Swap(HorzRes); FileStream.Read(VertRes, 2); // y axis VertRes := Swap(VertRes); end finally FileStream.Free; end; end; ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2011, 21:25 |
|
как считать разрешение картинки
|
|||
---|---|---|---|
#18+
Используйте BlobMid() чтобы извлекать нужные участки файла (взамен Seek и Read). полученные блобы преобразовывайте с помощью byte(), int(), в нужные типы данных. Delphi <=> PB byte = byte (PB10+) or char (PB9-) word = int Чем заменить Pos по блобу не помню. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2011, 22:58 |
|
как считать разрешение картинки
|
|||
---|---|---|---|
#18+
Anatoly Moskovsky, спасибо! надеюсь, хоть что-то смогу сделать) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2011, 23:03 |
|
как считать разрешение картинки
|
|||
---|---|---|---|
#18+
База данных какая? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2011, 10:16 |
|
как считать разрешение картинки
|
|||
---|---|---|---|
#18+
Лампочка , запустите скрипт, он выведет все данные о JPG файле Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
Перевести в РВ думаю не сложно. А для BMP (по Вашему методу) делал типа так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2011, 11:48 |
|
как считать разрешение картинки
|
|||
---|---|---|---|
#18+
Вот нашел интересную DLL - PortableDeviceWiaCompat.dll По идее с ней можно не только размеры, и другие характеристики вытащить, но и корректно изменять эти файлы. Но вот прикрутить к РВ не получилось. :( ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2011, 12:28 |
|
как считать разрешение картинки
|
|||
---|---|---|---|
#18+
Вот накропал примерный код, эквивалентный приведенному выше дельфийскому (но не проверял) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2011, 19:38 |
|
как считать разрешение картинки
|
|||
---|---|---|---|
#18+
вот у меня в билдере 10 почему-то нет байта..поэтому я никак не могу считать measure. А разрешения все-таки сама сгодня накропала, поскольку инета на работе нет - и только что нашла все сообщения. Что можно сделать вместо byte? И всем спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2011, 21:45 |
|
как считать разрешение картинки
|
|||
---|---|---|---|
#18+
Лампочкавот у меня в билдере 10 почему-то нет байта..поэтому я никак не могу считать measure. А разрешения все-таки сама сгодня накропала, поскольку инета на работе нет - и только что нашла все сообщения. Что можно сделать вместо byte? И всем спасибо! PB10.5 Help. Standard datatypes. Byte Код: plaintext 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2011, 22:48 |
|
как считать разрешение картинки
|
|||
---|---|---|---|
#18+
Лампочкавот у меня в билдере 10 почему-то нет байта..поэтому я никак не могу считать measure. А разрешения все-таки сама сгодня накропала, поскольку инета на работе нет - и только что нашла все сообщения. Что можно сделать вместо byte? И всем спасибо! Считывание байта из блоба в переменную типа long Код: plaintext 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2011, 09:27 |
|
как считать разрешение картинки
|
|||
---|---|---|---|
#18+
AISЛампочкавот у меня в билдере 10 почему-то нет байта..поэтому я никак не могу считать measure. А разрешения все-таки сама сгодня накропала, поскольку инета на работе нет - и только что нашла все сообщения. Что можно сделать вместо byte? И всем спасибо! PB10.5 Help. Standard datatypes. Byte Код: plaintext 1. 2. 3. 4. 5.
Тип byte появился начиная с 10.5 В 10, 10.2 его нет (не знаю о чем они думали). ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2011, 09:29 |
|
как считать разрешение картинки
|
|||
---|---|---|---|
#18+
02.03.2011 9:29, Anatoly Moskovsky пишет: > В 10, 10.2 его нет (не знаю о чем они думали). О том же, о чём они думали, когда решили не добавлять в язык побитовые логические операции... Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2011, 16:00 |
|
как считать разрешение картинки
|
|||
---|---|---|---|
#18+
Anatoly Moskovskyне знаю о чем они думали Это было риторическое замечание. Вряд ли имеет смысл перечислять все, над чем "они думали" - слишком длинный список. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2011, 18:19 |
|
|
start [/forum/topic.php?fid=15&msg=37145355&tid=1335779]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
29ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 290ms |
total: | 410ms |
0 / 0 |