Форум: "Основная";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];
ВнизBitmap Найти похожие ветки
← →
Mih (2005-01-21 05:55) [0]Помогите кто знает или догадывается!
Как в bitmap-е узнать какой цвет преобладающий
и сколько % занимает ???
← →
Александр1 (2005-01-21 06:36) [1]Вот держи код работа с цветами. Может пригодится.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
Col=0..255;
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
procedure FormActivate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
x,y,z:col;
implementation
{$R *.DFM}
procedure TForm1.FormActivate(Sender: TObject);
begin
Edit1.Text:=IntToStr(2);
Edit2.Text:=IntToStr(2);
Edit3.Text:=IntToStr(2);
x:=0;
y:=0;
z:=0;
Form1.Color:=RGB(x,y,z);
Label1.Caption:=IntToStr(x);
Label2.Caption:=IntToStr(y);
Label3.Caption:=IntToStr(z);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
x:=x+StrToInt(Edit1.Text);
Label1.Caption:=IntToStr(x);
Form1.Color:=RGB(x,y,z);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
y:=y+StrToInt(Edit2.Text);
Label2.Caption:=IntToStr(y);
Form1.Color:=RGB(x,y,z);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
z:=z+StrToInt(Edit3.Text);
Label3.Caption:=IntToStr(z);
Form1.Color:=RGB(x,y,z);
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
x:=x-StrToInt(Edit1.Text);
Label1.Caption:=IntToStr(x);
Form1.Color:=RGB(x,y,z);
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
y:=y-StrToInt(Edit2.Text);
Label2.Caption:=IntToStr(y);
Form1.Color:=RGB(x,y,z);
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
z:=z-StrToInt(Edit3.Text);
Label3.Caption:=IntToStr(z);
Form1.Color:=RGB(x,y,z);
end;
end.
← →
Mih (2005-01-21 06:56) [2]Спасибо ... может и пригодится
← →
Mih (2005-01-21 07:57) [3]Может быть кто хотябы направление укажет в котором двигаться ???
Зараннее спасибо!!
← →
MBo © (2005-01-21 08:37) [4]Придется перебрать все пикселы с использованием ScanLine или другого быстрого метода доступа к пикселам (например, отсюда: http://www.delphimaster.ru/articles/pixels/index.html )
Если битмап менее чем 24-х битный, результаты (гистограмму) можно хранить в массиве, для 24-х битного затраты по памяти весьма существенны, так что можно попробовать какую-либо динамическую структуру данных использовать (дерево или список)
← →
Mih (2005-01-21 08:49) [5]Спасибо MBo, я делаю перебором (хотя в душе надеялся на более быстрый способ) спасибо что разубедил меня что такой способ существует!!!!
Вопрос снимается ... ( а очень жаль...)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.037 c