![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как правильно уменьшить иконку? [D6, WinXP]
DNT © (2002-07-04 12:58:00)Мне нужно достать из файла иконку и уменьшить ее до 16х16.
Достаю иконку. Копирую ее в битмап.
procedure TForm1.Resize_icon(bmp:TBitmap;source:TBitmap);
//procedure changes icon TBtimap size from 32x32 to 16x16 with interpolation
var x,y:integer;
r,g,b:integer;
color:TColor;
begin
for y:=0 to 15 do
for x:=0 to 15 do begin
color:=source.Canvas.Pixels[x*2, y*2];
r := GetRValue(color);
g := GetGValue(color);
b := GetBValue(color);
color:=source.Canvas.Pixels[x*2+1, y*2];
r := r+GetRValue(color);
g := g+GetGValue(color);
b := b+GetBValue(color);
color:=source.Canvas.Pixels[x*2, y*2+1];
r := r+GetRValue(color);
g := g+GetGValue(color);
b := b+GetBValue(color);
color:=source.Canvas.Pixels[x*2+1, y*2+1];
r := r+GetRValue(color);
g := g+GetGValue(color);
b := b+GetBValue(color);
r:=r div 4;
g:=g div 4;
b:=b div 4;
bmp.canvas.Pixels [x,y]:=RGB(r,g,b)
end;
end;
Уменьшаю вот так, но там где была прозрачность на иконке пропадает. Как с этим справится?
Заранее спасибо.
DNT (2002-07-04 19:16:00) [1]Спасибо, подчти подходит. Только надо наоборот, из иконки битмат. И при создании использовать маску тоже.
Skier (2002-07-04 19:07:00) [2]>DNT
Может это поможет :
http://delphi.mastak.ru/cgi-bin/faq.pl?look=1&id=988625276&n=21
DNT (2002-07-04 18:45:00) [3]Неужели никто не знает?