با سلام
برای شروع کار,
اول شما باید با دلفی
تا حدی (متوسط) آشنایی داشته باشید.
1-
تغییر رنگ یک پیکسل از یک عکس
برای این کار :
*یک تصویر دارای دو محور افقی
و عمودی است.
*مثلا
:
2,3*
تغییر رنگ یک پیکسل از
image
برای این کار دستور زیر را
بنویسید:
Image1.canvas.pixels[1,2]:=image1.canvas.pixels[1,2]+2;
در این دستور پیکسل
[1,2]
ایمیج 1 برابر همان پیکسل + 2 می شود.
تعویض دو پیکسل از
image
نکته : * مقدار یک پیکسل از
نوع integer
است.
برای این کار دستور زیر را
بنویسید:
Var i:integer;
Begin
I:=image1.canvas.Pixels[2,2];
Image1.canvas.pixels[2,2]:=image1.canvas.pixels[1,1];
Image1.canvas.pixels[1,1]:=I;
این دستور اول مقدار پیکسل
2,2
را در متغیر I
قرار می دهد و سپس پیکسل
2,2
را همانند پیکسل 1,1
می کند
و سپس پیکسل
1,1
را مانند I
می کند.
2-
تغییر رنگ یک خط افقی از
image
برای این کار باید از یک حلقه
تکرار استفاده کرد که از 1 تا
image1.white
باشد.
و در هر حلقه پیکسل (متغیر و
1 ) را + 3 کند.
برای این کار کد زیر را
بنویسید:
Var I : integer;
Begin
For I := 1 to image1.
Width do
Image1.canvas.pixels[I,0]:=image1.canvas.pixels[I,0]+3;
این دستور رنگ یک خط از
image
را تغییر می دهد.
3-
تغییر یک خط عمودی از
image
این کار همانند کار بالا است
با این تفاوت که به جای پیکسل
[I,0]
باید از پیکسل
[0,i]
استفاده کرد.
برای این کار کد زیر را
بنویسید:
Var I : integer;
Begin
For I := 1 to image1.Height do
Image1.canvas.pixels[0,i]:=image1.canvas.pixels[0,i]+3;
4-
تا
این جا با نحویه تغییر رنگ عکس آشنا شدید.
حالا می خواهیم یک فیلتر درست
کنیم.
برای این کار باید از دو حلقه
ی for
استفاده کرد.
For
اولی برای ارتفاع
For
دوم برای طول
در
for
دومی یک خط از Image
تغییر رنگ پیدا می کند و یک حلقه دیگر اجرا می شود و خط دوم تغییر می کند و
به همین ترتیب تا آخر.
نوشتن فیلتر زرد کننده ی رنگ
*اگر رنگ هر پیکسل را بر
256
تقسیم کنیم رنگ آن زرد می شود.
برنامه :
نوشتن فیلتر زرد کننده ی رنگ:
procedure TForm1.Button1Click(Sender:
TObject);
var I,q : integer;
begin
for q:= 1 to image1.Height-1 do
begin
for I := 1 to image1.Width-1 do
Image1.canvas.pixels[i,q]:=image1.canvas.pixels[i,q] div 256;
end;
end;
|