Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2004.11.07;
Скачать: [xml.tar.bz2];

Вниз

Нужно получить по известному хэндлу иконки её глубину цвета   Найти похожие ветки 

 
Ale}{(is)   (2004-08-06 16:39) [0]

Уважаемые Мастера! Помогите решить следующую проблему. Нужно получить по известному хэндлу иконки её глубину цвета. Пробовал получать AND битмап этой иконки, но он всегда имеет глубину 32-bit, т. е. как у экрана. А мне нужно получить реальную глубину. Заранее благодарен.


 
Mihey_temporary ©   (2004-08-06 18:07) [1]

Походу дела очень сложно. Но можно обойти проблему. Как тебе нужно загружать иконки? Если из файла, то данные об этом можно считать напрямую.


 
Кириешки ©   (2004-08-07 07:44) [2]

А получить саму иконку, и ее уже измерить?

function GetIcon(wnd:hwnd):TIcon;
begin
result:=TIcon.Create;
result.Handle:=GetClassLong(wnd,GCL_HICON);
end;

procedure TForm1.....Click(Sender: TObject);
var
h : thandle;
begin
h := handleIconki;
geticon(h);
image1.Picture.Icon:=GetIcon(h);
end;

Может быть так получится. Хотя я не знаю, код написал пряма тута и не проверял.


 
Ale}{(is)   (2004-08-07 09:51) [3]

Читаю я иконку из файла. Но потом пользователь может заменить одну из иконок файла на другую. А при записи в файл нужно получить её параметры, в частности BPP, что я сделать не могу. Помогите!


 
Mihey_temporary ©   (2004-08-07 19:13) [4]

Я знаю эту проблему и не нашёл ей решения, точнее нашёл обход - вручную гружу из файла иконку и все данные, тогда без проблем. Вот модуль, реализующий это дело. Иконки грузятся в TBitmap, PixelFormat которого всегда без проблем опеределяется.

http://www.hot.ee/mvps21/IconLoad.rar


 
Ale}{(is)   (2004-08-09 11:20) [5]

К сожалению, меня опять не так поняли. Проблема такова: пользователь меняет свойство моего класса Icon: HICON и в результате должны обновиться другие поля этого класса, а именно Width, Height и BPP. Т. о. ничего кроме переменной типа HICON у меня нет, ни файла, ничего вообще. А XORMask, возвращаемые GetIconInfo возвращает всегда 32-битный битмап.


 
Mihey_temporary ©   (2004-08-09 15:19) [6]

>К сожалению, меня опять не так поняли. Проблема такова: пользователь меняет свойство моего класса Icon: HICON и в результате должны обновиться другие поля этого класса, а именно Width, Height и BPP.

Но ты сам писал:

>Читаю я иконку из файла. Но потом пользователь может заменить одну из иконок файла на другую. А при записи в файл нужно получить её параметры, в частности BPP, что я сделать не могу. Помогите!

В таком случае можно не работать с иконкой явно, а внутри хранить иконку как TBitmap, а загрузку и сохранение и передачу как HICON делать вручную.

Просто не ты первый, кто столкнулся с такой проблемой при работе с HICON. Решения я не знаю.


 
Ale}{(is)   (2004-08-09 15:57) [7]

Очень жаль, придётся искать обходные решения!


 
Mihey_temporary ©   (2004-08-09 15:59) [8]

Попробуй может напиши в Microsoft, мол ваша же API.



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

Форум: "Media";
Текущий архив: 2004.11.07;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.037 c
1-1098436864
denis24
2004-10-22 13:21
2004.11.07
form1.windowstate:=maximazed


1-1098630512
LAndreyV
2004-10-24 19:08
2004.11.07
Подскажите по поводу hint


4-1096449331
Igit
2004-09-29 13:15
2004.11.07
Смещение в файле EP


3-1097112092
Tatyana
2004-10-07 05:21
2004.11.07
jpg и база данных


3-1097232652
SergP.
2004-10-08 14:50
2004.11.07
Строка подключения для FOX(Dbase) через Microsoft.Jet.OLEDB.4.0





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский