Наш каркас фоторедактора.
Наш фундамент фотошопа будет пока что только каркасом даже а не фундаментом,ну да ладно.
Значит будем узнавать цвет любого пиксела на фото водя курсором по фото и еше яркость.
Нулевая яркость это черный цвет black а 255 это белый white. Веб мастерам это пригодится просто указав на образец мы получим цвет в формате фотошопа в шестнадцетеричном виде.
А вот как это у меня выглядит рабочий образец фоторедактора:
Вот процедура которая выясняет цвета трех каналов RGB
procedure getColorInfo(color_:dword);
var r,g,b:byte; w,h:integer;rec:trect;
begin
with form1 do begin
получаем цвет пиксела
r:=getrvalue(color_);
g:=getgvalue(color_);
b:=getbvalue(color_);
переводим цвет из целого в шестнадцетеричный вид
edit2.Text:=inttohex(color_,4);
label2.caption:='R: '+inttostr(r)+
' '+'G: '+inttostr(g)+
' '+'B: '+inttostr(b);
image2.Transparent:=true;
image2.Canvas.Pen.Color:=color_;
image2.Canvas.Brush.Color:=color_;
for w:=1 to image2.Width do
for h:=1 to image2.Height do
image2.Canvas.Pixels[w,h]:=color_;
end;
end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
getcolorInfo(image1.Canvas.Pixels[x,y]);
label1.Caption:='яркость: '+inttostr(getbrightness(image1.Canvas.Pixels[x,y]));
if (startx<>0) and (starty<>0) then begin
image1.Canvas.Pen.Style:=psdot;
image1.Canvas.Rectangle(startx,starty,x,y);
end;
end;
Попозже объясню что и как сделать.
Наш фундамент фотошопа будет пока что только каркасом даже а не фундаментом,ну да ладно.
Значит будем узнавать цвет любого пиксела на фото водя курсором по фото и еше яркость.
Нулевая яркость это черный цвет black а 255 это белый white. Веб мастерам это пригодится просто указав на образец мы получим цвет в формате фотошопа в шестнадцетеричном виде.
А вот как это у меня выглядит рабочий образец фоторедактора:
Вот процедура которая выясняет цвета трех каналов RGB
procedure getColorInfo(color_:dword);
var r,g,b:byte; w,h:integer;rec:trect;
begin
with form1 do begin
получаем цвет пиксела
r:=getrvalue(color_);
g:=getgvalue(color_);
b:=getbvalue(color_);
переводим цвет из целого в шестнадцетеричный вид
edit2.Text:=inttohex(color_,4);
label2.caption:='R: '+inttostr(r)+
' '+'G: '+inttostr(g)+
' '+'B: '+inttostr(b);
image2.Transparent:=true;
image2.Canvas.Pen.Color:=color_;
image2.Canvas.Brush.Color:=color_;
for w:=1 to image2.Width do
for h:=1 to image2.Height do
image2.Canvas.Pixels[w,h]:=color_;
end;
end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
getcolorInfo(image1.Canvas.Pixels[x,y]);
label1.Caption:='яркость: '+inttostr(getbrightness(image1.Canvas.Pixels[x,y]));
if (startx<>0) and (starty<>0) then begin
image1.Canvas.Pen.Style:=psdot;
image1.Canvas.Rectangle(startx,starty,x,y);
end;
end;
Попозже объясню что и как сделать.
Чувак ты крут! Давно искал программирование и создание программ
ОтветитьУдалитьНу крутого еще тут ничего нету ))) основы основ и только
ОтветитьУдалить