Вниз
Скачать: 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.022 c
4-1084346828
naked
2004-05-12 11:27
2004.06.20
мониторинг файловой системы


3-1085674307
JurMax
2004-05-27 20:11
2004.06.20
Изменение ширины строки в dbGrid


1-1086258035
nitro
2004-06-03 14:20
2004.06.20
Сохранение в файл jpg все что находится в Groupbox ?


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


14-1086358053
_Начинающий_
2004-06-04 18:07
2004.06.20
Система наименования компонентов




   Наверх