justify">//спочатку перетворити растрове зображення у відтінки сірого
color:=colortorgb(bmp.Canvas.pixels[w,h]);:=getrvalue(color);:=getgvalue(color);:=getbvalue(color);:=(r+g+b) div 3; .canvas.Pixels [w, h]:=RGB (color2, color2, color2);
//потім перетворити його в сепию:=colortorgb(bmp.Canvas.pixels[w,h]);:=getrvalue(color);:=getgvalue(color);:=getbvalue(color);:=r+(depth*2);:=g+depth;rr lt;=((depth * 2) - 1) then:=255; gg lt;=(depth - 1) then:=255; .canvas.Pixels [w, h]:=RGB (rr, gg, b) ;// Закашивает піксель ввизначенні цвет.ProgressBar1.Position:=h ;;;; TForm1.image1MouseDown (Sender: TObject; Button: TMouseButton ;: TShiftState; X, Y: Integer); button=mbLeft then begin.assign (buffer); :=x; y0:=y; SpeedButton1.Down then//олівець
begin:=sPen; .canvas.MoveTo (x, y); elseSpeedButton2.Down then//еліпс:=sEllipse elseSpeedButton3.Down then:=sRect else//квадратSpeedButton4.Down then:=sPoly elseSpeedButton5.Down then//заливка:=sFill; speedbutton6.Down then//ластик:=sRectL;:=true;.Canvas.Pen.Color:=ColorBox1.Selected;.Canvas.Brush.Color:=ColorBox2.Selected;nowdrawing=sFill then.Canvas.FloodFill(x0,y0,img.Canvas.Pixels[x,y],fsSurface);.Assign(img);:=false;else(dwn)and(nowdrawing=sPoly) then begin:=x;:=y;.Assign(img);;;.Canvas.CopyRect(bounds(0,0,img.Width,img.Height),img.Canvas,bounds(0,0,img.Width,img.Height));// копіює на Canvas зображення; TForm1.FormCreate (Sender: TObject);// створення Btm і установка їх размеров:=TBitmap.Create;:=TBitmap.Create;.Width:=image1.ClientWidth;.Width:=image1.ClientWidth;.Height:=image1.ClientHeight;.Height:=image1.ClientHeight;:=sPen;:=false;;TForm1.image1MouseMove(Sender: TObject; Shift: TShiftState; X ,: Integer) ;; not dwn then exit; .assign (buffer); nowdrawing of: begin.Canvas.Brush.Style:=bsclear;// малює лінії
img.Canvas.LineTo (x, y) ;. Assign (img) ;;: begin //делаетквадратвнутрипрозрачным.Canvas.Brush.Style:=bsclear;.Canvas.Rectangle(x0,y0,x,y);;: begin //ластік.Left:=x - 116; .Top:=y - 20;.Canvas.Pen.Color:=colorbox2.Color;.Canvas.Pen.Color:=colorbox2.Color;.Canvas.Brush.color:=colorbox2.Color;.Canvas.Brush.Color:=colorbox2.Color;.Canvas.brush.style:=bssolid;.Canvas.Brush.style:=bssolid;.Canvas.Rectangle(x- 23, y - 23, x + 23, y + 23);// Встановлює расзмери ластику
buffer.Canvas.Rectangle (x - 23, y - 23, x + 23, y + 23) ;;
sEllipse: begin//робить еліпси прозорими
img.Canvas.Brush.Style:=bsclear;.Canvas.Ellipse (x0, y0, x, y) ;;
sPoly: begin//робить квадрати прозорими
img.Canvas.Brush.Style:=bsclear;.Canvas.MoveTo (x0, y0) ;. Canvas.LineTo (x, y);
end;:begin;;.Canvas.CopyRect(bounds(0,0,img.Width,img.Height),img.Canvas,bounds(0,0,img.Width,img.Height));;TForm1.image1Paint(Sender: TObject);.Canvas.CopyRect(bounds(0,0,img.Width,img.Height),buffer.Canvas,bounds(0,0,img.Width,img.Height));;TForm1.image1MouseUp(Sender: TObject; Button: TMouseButton;//: TShiftState; X, Y: Integer); button=mbLeft then dwn:=false; .Assign (img);// Порівнюйте буффер з img; TForm1.N5Click (Sender: TObject);// Закриття програми ;; TForm1.N2Click (Sender: TObject);// Процедура для додавання свого іщображенія.Execute then image1.Picture.LoadFromFile (OpenPictureDialog1.FileName) ;; TForm1.N3Click (Sender: TObject);// процедура для сохраненіяsavePictureDialog1.Execute then image1.picture.SaveToFile (savePictureDialog1.FileName) ;; TForm1.Image1Progress (Sender: TObject; Stage: TProgressStage; //: Byte; RedrawNow: Boolean; const R: TRect; Msg: String);.Canvas.CopyRect(bounds(0,0,img.Width,img.Height),buffer.Canvas,bounds(0,0,img.Width,img.Height));;TForm1.SpeedButton10Click(Sender: TObject);// При натисканні появляетсья ефект сепії (image1.picture.bitmap, 20) ;; TForm1.SpeedButton7Click (Sender: TObject);// Очітскі холста.Canvas.Brush.Color:=clwhite;.Canvas.Brush.Style:=bssolid;.Canvas.FillRect(image1.ClientRect);.Canvas.FillRect(img.Canvas.ClipRect);.Canvas.FillRect(buffer.Canvas.ClipRect);;TForm1.TrackBar1Change(Sender: TObject);// Товщина ліній.Canvas.Pen.Width:=trackbar1.Position ;; TForm1.Button1Click (Sender: TObject);// Ефект негатівline: pByteArray;, j: integer; i:=0 to image1.Picture.Bitmap.Height - 1 do:=image1.Picture.Bitmap.ScanLine [i]; j:=0 to image1.Picture.Bitmap.Width * 3-1 do ^ [j]:=255-line ^ [j] ;;. Refresh;// Оновлення; TForm1.SpeedButton6Click (Sender: TObject);// При натисканні на цю кнопку ластик становитс невідемим.Visible:=true ;; TForm1.SpeedButton5Click (Sender: TObject);// відключає ластик при натисканні на кнопку.Visible:=false ;; TForm1.SpeedButton4Click (Sender: TObject) ;. Visible:=false ;; TForm1.SpeedButton1Click (Sender: TObject) ;. Visible:=false ;; TForm1.SpeedButton3Click (Sender: TObject) ;. Visible:=false ;; TForm1.SpeedButton2Click (Sender: TObject) ;. Visible:=false ;; end.