Вниз
Скачать: CL | DM;

Загружать и сохранять в многоцветные иконки...   Найти похожие ветки 

← →
Minori   (2004-06-08 21:54) [0]

Проблемма: есть иконка (цветов >=256 или около того), нужно ее сохранить на диск. Вызов SaveToFile вызывает ошибку "инвалидский битмап".
Кто знает, уделите немного времени. Спасибо.


← →
able ©   (2004-06-08 21:55) [1]


> нужно ее сохранить на диск.

А в каком формате-то??


← →
Minori   (2004-06-08 22:01) [2]

А в любом, но логичнее было бы в иконочном. *.ico


← →
Gero ©   (2004-06-08 22:50) [3]

TIcon.SaveToFile


← →
Minori   (2004-06-09 10:08) [4]

//TIcon.SaveToFile

Вот спасибо, ты верхний пост читал?
Так многоцветные иконки либо сохраняются с потерей "лишних" цветов, либо вообще не сохраняются, выдавая ошибку.


← →
Gero ©   (2004-06-09 10:15) [5]


> Minori   (09.06.04 10:08)

Я обычно читаю посты.
Какая-то никому не известная функция SaveToFile, название которой к тому же совпадает с названиями медодов TBitmap, TIcon, TPicture и других классов.
Ты привел свой код? Нет?
Вот сначала приведи, а потом недовольство высказывать будешь.
Сколько цветов в иконке? Откуда ее берешь?


← →
Minori   (2004-06-09 11:15) [6]

2 Gero
Неправ, извини...

Код приводить не буду - очень длинно получится. Да и похоже, что именно в этом месте ошибка.

Делаю прогу, которая из заданного каталога перебирает все exe-хи и dll-ы, ExtractIcon-ит их и сохраняет все иконки на диск. Так должно быть в идиале.
Когда прога добирается до определенных файлов типа "c:\windows\system32\osk.exe" в XP, все это дело вылетает с ошибкой <EInvalidGraphic with message "Bitmap image is not valid"> в момент Ticon.SaveToFile

Пример такой ошибки:

uses ShellApi...
...
procedure TForm1.Button1Click(Sender: TObject);
var ic: ticon;
begin
ic:= ticon.Create;
ic.Handle:=ExtractIcon(HInstance,"c:\windows\system32\osk.exe",1);
form1.Canvas.Draw(0, 0, ic);
ic.SaveToFile("c:\temp\1.ico");
end;


Но это только полбеды - все иконки, имеющие 256 и боле цветов, сохраняются с потерей цветности, хотя и отображаются в Сanvase.



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.019 c
9-1077688627
Kid
2004-02-25 08:57
2004.06.20
TriangleList &amp; TriangleStrip


1-1086216041
hiperLogun
2004-06-03 02:40
2004.06.20
XP Menu


1-1086518903
GanibalLector
2004-06-06 14:48
2004.06.20
Интерфейс как в Delphi?


1-1086373148
lelik
2004-06-04 22:19
2004.06.20
зашитие файла


1-1086644326
kat
2004-06-08 01:38
2004.06.20
Опережающее событие OnClick




   Наверх