27 апреля 2012 г.

Основы фото редактора.

                         Наш каркас фоторедактора.

Наш фундамент фотошопа будет пока что только каркасом даже а не фундаментом,ну да ладно.
Значит будем узнавать цвет любого пиксела на фото водя курсором по фото и еше яркость.
Нулевая яркость это черный цвет 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;

Попозже объясню что и как сделать.

2 комментария:

  1. Чувак ты крут! Давно искал программирование и создание программ

    ОтветитьУдалить
  2. Ну крутого еще тут ничего нету ))) основы основ и только

    ОтветитьУдалить