PDA

View Full Version : رنگ آمیزی تصویر در دلفی



Zahed2008
دوشنبه 14 بهمن 1387, 10:54 صبح
سلام دوستان،
من می خوام قسمتهای دلخواه از یه image رو به طور دلخواه نه بطور فقط مستطیل و یا پیکسلی رنگ آمیزی کنم. به نظر شما بهترین روش از لحاظ سرعت برنامه چیه ؟ اگه دستوری در دلفی می شناسید، ممنون می شم که راهنماییم کنید.

Zahed2008
دوشنبه 14 بهمن 1387, 17:06 عصر
سلام، خودم فهمیدم.
می تونم با دستور Polygon این کار رو بکنم. مثل:


with image.canvas do begin
brush.color := clBlue;
brush.style := bsSolid;
pen.color := clRed;
pen.style := psSolid;
polygon( [ point(100,100), point(200,200),
point(300,200), point(400,500) ] );
end;

sobhangh
سه شنبه 15 بهمن 1387, 10:49 صبح
اگر بخواهی مداد بسازی که هر کجار ا رنگ کنی باید چی کار کنی؟

Zahed2008
یک شنبه 20 بهمن 1387, 09:29 صبح
سلام، اگه یه مداد با ضخامت کم بخواهید، فکر می کنم دستور پیکسل در روال MouseMove کافی باشه، ولی برای ضخامتهای مختلف فکر می کنم یه مربع (دستور Regtangle) یا یه دایره (دستور Ellips ) به مرکز مورد نظر مشکلتون رو حل کنه. مثل کد زیر:


var
okMove: boolean; // public parameter
....
Image1.MouseDown(...);
okMove := true;
end;

Image1.MoseMove(...x,y: integer; ...);
if okMove then begin
image1.canvas.pixel[x,y] := clRed;
end;
end;

Image1.MouseUp(...);
okMove := False;
end;
امیدوارم توضیحاتم کافی بوده باشه. موفق باشید.

mbshareat
سه شنبه 29 بهمن 1387, 12:27 عصر
آقا بهترین را ستفاده از TCanvas.FloodFill است که محدوده بسته با خط محیطی تک رنگ (fsBorder) یا محیط تگ رنگ با هر رنگ در اطرافش(fsSurface ) با رنگ TCanvas.Brush پر می کنه!