Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.08.05;
Скачать: CL | DM;

Вниз

Как вытищить и/или изменить разрешение BitMap   Найти похожие ветки 

 
AlexSt ©   (2006-11-05 15:08) [0]

Подскажите кто знает, как добраться до разрешения БМПешки, когда она загружена в TBitMap, те самые XPelsPerMeter и YPelsPerMeter? Я могу считать, если через стреам открыть файл и изменить хеадер, но хочеться сделать это в TBitMap, ведь оно там есть но добраться до него немогу.


 
MBo ©   (2006-11-05 16:18) [1]

Разрешение BMP  - справочные данные (разрешение графического устройства, в котором был выбран битмап перед сохранением), никакой существенной роли они не играют.
Ну если желание непреодолимо, GetObject можно использовать


 
Vovan#2   (2006-11-05 16:27) [2]

http://www.efg2.com/Lab/Library/Delphi/Graphics/BMPPelsPerMeter.TXT
(см. второй ответ)


 
AlexSt ©   (2006-11-05 17:24) [3]

>http://www.efg2.com/Lab/Library/Delphi/Graphics/BMPPelsPerMeter.TXT
Я примерно так и сделал, но для этого мне сначала приходитьься сохранять битмап, а потом опять открывать файл и корректировать хеадер. Некрасиво! Хотелось бы непосредственно в битмапе.

>Разрешение BMP  - справочные данные (разрешение графического >устройства, в котором был выбран битмап перед сохранением), никакой >существенной роли они не играют.

Разоешение экрана 96дпи меня не интересуют, меня интересует разрешение с которым будет печататься из граф. редактора.
Что возвращает GetObject?


 
AlexSt ©   (2006-11-05 17:50) [4]

Второй ответ сразу и не посмотрел, спасибо!


 
AlexSt ©   (2006-11-05 18:03) [5]

Почему второй ответ дает нули. Что не так? Как может влиять система?


 
Ketmar ©   (2006-11-05 18:08) [6]

>[5] AlexSt(c) 5-Nov-2006, 18:03
>Почему второй ответ дает нули. Что не так? Как может
>влиять система?
а эти значения вовсе и не обязаны быть прописаны. мальчик был вообще?


 
AlexSt ©   (2006-11-05 18:15) [7]

Да, мальчик есть. Если считать по первому ответу (хеадер из файла) все на месте.


 
Ketmar ©   (2006-11-05 18:21) [8]

значит, система посчитала, что они нафиг не нужны при работе с битмапом в памяти. %-)


 
Pavia ©   (2006-11-05 19:15) [9]


> Разрешение BMP  - справочные данные (разрешение графического
> устройства, в котором был выбран битмап перед сохранением),
>  никакой существенной роли они не играют.

Играет просто виндоусу на него наплевать.


 
SamBrook ©   (2006-11-05 19:28) [10]

В tbitmap эти сведения храняться в приватном поле.
Поэтому через него - никак.

В целом, эти данные могут быть очень полезными, но , к сожалению, большинство программ их игнорируют (за исключением, по моему, Imaging и Word).


 
AlexSt ©   (2006-11-05 19:55) [11]


> В tbitmap эти сведения храняться в приватном поле.
> Поэтому через него - никак.

Да но в модуле Graphics спецально для этого введена GetDIB, которая теоретически должна это вытаскивать, но почему то она вытаскивает все, кроме этих двух полей.


 
SamBrook ©   (2006-11-05 20:50) [12]


> Да но в модуле Graphics спецально для этого введена GetDIB,
>  которая теоретически должна это вытаскивать, но почему
> то она вытаскивает все, кроме этих двух полей.


Потому что сделана криво.
Впрочем как и весь класс tBitmap (ИМХО, но не без оснований)


 
AlexSt ©   (2006-11-05 21:01) [13]


> Потому что сделана криво.
> Впрочем как и весь класс tBitmap (ИМХО, но не без оснований)


Ну что же, будет время перепишу TBitMap под себя с исправлением.


 
Vovan#2   (2006-11-05 23:35) [14]

>Впрочем как и весь класс tBitmap (ИМХО, но не без оснований)

Истина есть сиё.



Страницы: 1 вся ветка

Текущий архив: 2007.08.05;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.028 c
15-1183841855
Vlad Oshin
2007-07-08 00:57
2007.08.05
что-то раньше не замечал. а действительно. Платят за таку ерунду


1-1180529699
Margo
2007-05-30 16:54
2007.08.05
Stack Overflow на создании формы


1-1180168895
Zagaevskiy
2007-05-26 12:41
2007.08.05
Как открыть CD-ROM?


2-1183879448
sl8er
2007-07-08 11:24
2007.08.05
Не вижу изменения


15-1184183548
Иксик
2007-07-11 23:52
2007.08.05
Посоветуйте minidv видеокамеру в пределах 300 евро.