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

Вниз

Как засерить иконку?   Найти похожие ветки 

 
kull   (2003-04-29 15:17) [0]

В смысле сделать ее серой. :)


 
Anatoly Podgoretsky   (2003-04-29 15:30) [1]

FillRect


 
kull   (2003-04-29 15:36) [2]

Неееее.... Не так... Надо чтобы она была типа Enabled = False


 
REA   (2003-04-29 15:36) [3]

ImageList_Draw может быть полезно,
еще что-то видел с Bitmap - склероз.


 
Anatoly Podgoretsky   (2003-04-29 15:56) [4]

CopyMode/Draw/CopyRect etc


 
kull   (2003-04-29 16:16) [5]

Спасибо, народ! Вроде получилось....


 
NAlexey   (2003-04-29 16:56) [6]

Можно так сделать:

procedure TForm1.Button1Click(Sender: TObject);
type
PColors = ^TColors;
TColors = array[0..MaxInt - 1] of Byte;
var
BI: TBitmapInfo;
W, H: integer;

function GetBitmapColors(ABitmap: HBITMAP): PColors;
begin
with BI.bmiHeader do
begin
biSize := SizeOf(BI.bmiHeader);
biWidth := W;
biHeight := -H;
biPlanes := 1;
biBitCount := 32;
biCompression := BI_RGB;
GetMem(Result, 4 * W * H);
GetDIBits(Image1.Canvas.Handle, ABitmap, 0, H, Result, BI, DIB_RGB_COLORS);
end;
end;

procedure SetBitmapColors(ABitmap: HBITMAP; AColors: PColors);
begin
SetDIBits(Image1.Canvas.Handle, ABitmap, 0, H, AColors, BI, DIB_RGB_COLORS);
FreeMem(AColors);
end;

procedure CreateGrayScaleBitmap;
var
Colors: PColors;
I, J, K: Integer;
AColor: COLORREF;
begin
Colors := GetBitmapColors(Image1.Picture.Bitmap.Handle);
try
for I := 0 to W - 1 do
for J := 0 to H - 1 do
begin
K := (J * W + I) * 4;
AColor := (Colors^[K] + Colors^[K + 1] + Colors^[K + 2]) div 3;
Colors^[K] := AColor;
Colors^[K + 1] := AColor;
Colors^[K + 2] := AColor;
end;
finally
SetBitmapColors(Image1.Picture.Bitmap.Handle, Colors);
end;
end;

begin
W := Image1.Picture.Bitmap.Width;
H := Image1.Picture.Bitmap.Height;
CreateGrayScaleBitmap;
Image1.Invalidate;
end;


 
wicked   (2003-04-29 19:49) [7]

глянь на DrawState в msdn....


 
Плохой человек   (2003-04-29 21:09) [8]

Нужно каждую чётную клеточку инвертировать - тогда получится такой эффект.



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

Форум: "Основная";
Текущий архив: 2003.05.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.005 c
7-34626
sergwolf
2003-03-18 20:06
2003.05.12
как программировать LPT порт ?


4-34640
DVM
2003-03-11 13:02
2003.05.12
Прозрачные подписи под значками SysListView32 на WinApi


1-34408
zloy_dima
2003-04-30 11:53
2003.05.12
Динамический массив


14-34612
DiamondShark
2003-04-21 17:40
2003.05.12
Слово


1-34457
Петр
2003-04-29 09:57
2003.05.12
Проблема с Объектами в форме MDI -приложения





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский