PDA

View Full Version : تکرار عکس



FreeMagic
شنبه 23 دی 1391, 22:01 عصر
سلام
میخوام یه عکس رو طوری داخل picturebox قرار بدم که وقتی عکس کوچیکتر از picturebox باشه عکس تکرار بشه دقیقا مثل عکسی که میزارن پس زمینه
عکس از picturebox کوچیکتر و سایز هر دو هم مشخصه
حالا باید چه کار کنم که عکس توی picturebox تکرار بشه؟
ضمنا عکس فقط توی یک چهارم بالا و سمت راست قرار میگیره

the king
شنبه 23 دی 1391, 22:17 عصر
سلام
میخوام یه عکس رو طوری داخل picturebox قرار بدم که وقتی عکس کوچیکتر از picturebox باشه عکس تکرار بشه دقیقا مثل عکسی که میزارن پس زمینه
عکس از picturebox کوچیکتر و سایز هر دو هم مشخصه
حالا باید چه کار کنم که عکس توی picturebox تکرار بشه؟
ضمنا عکس فقط توی یک چهارم بالا و سمت راست قرار میگیره

می تونم براتون کدی مشابه Tile رو بنویسم، اما چرا از مشخصه BackgroundImage و BackgroundImageLayout استفاده نمی کنید؟

Bitmap bmp = new Bitmap(pictureBox1.Width, pictureBox1.Height);
TextureBrush t = new TextureBrush(yourImage);
using (Graphics g = Graphics.FromImage(bmp))
{
g.FillRectangle(t, new Rectangle(0, 0, bmp.Width, bmp.Height));
}
pictureBox1.Image = bmp;

FreeMagic
شنبه 23 دی 1391, 23:01 عصر
می تونم براتون کدی مشابه Tile رو بنویسم، اما چرا از مشخصه BackgroundImage و BackgroundImageLayout استفاده نمی کنید؟

Bitmap bmp = new Bitmap(pictureBox1.Width, pictureBox1.Height);
TextureBrush t = new TextureBrush(yourImage);
using (Graphics g = Graphics.FromImage(bmp))
{
g.FillRectangle(t, new Rectangle(0, 0, bmp.Width, bmp.Height));
}
pictureBox1.Image = bmp;


تشکر
فقط میشه کمی در مورد کد توضیح بدین که بتونم تغییرات دلخواه رو بدم؟
کد به این صورت هست که از سمت چپ به راست عکس رو تکرار میکنه؟ اگه بخوام از راست به چپ عکس رو تکرار بکنه چه تغییراتی باید انجام بدم؟

the king
یک شنبه 24 دی 1391, 20:48 عصر
تشکر
فقط میشه کمی در مورد کد توضیح بدین که بتونم تغییرات دلخواه رو بدم؟
کد به این صورت هست که از سمت چپ به راست عکس رو تکرار میکنه؟ اگه بخوام از راست به چپ عکس رو تکرار بکنه چه تغییراتی باید انجام بدم؟

اجازه بدین از همون سمت چپ به راست عمل کنه، فقط موقعیت شروع رسم رو اونقدر به سمت چپ جابجا کنید که نقطه پایانی اش با سمت راست کادر
منطبق بشه.

Bitmap bmp = new Bitmap(pictureBox1.Width, pictureBox1.Height);
TextureBrush t = new TextureBrush(yourImage);
using (Graphics g = Graphics.FromImage(bmp))
{
int dx = yourImage.Width - bmp.Width % yourImage.Width;
g.TranslateTransform(-dx, 0);
g.FillRectangle(t, new Rectangle(0, 0, bmp.Width + dx, bmp.Height));
}
pictureBox1.Image = bmp;