View Full Version : نحوه تهیه عکس از RichTextBox
golestan1
سه شنبه 20 مهر 1395, 07:10 صبح
چرا کد زیر از کنترل هایی مانند تکست باکس ، پنل ، دکمه عکس تهیه می کند اما از ریچ باکس نمی تواند به درستی تهیه کند
می خوام فقط از ریچ باکس عکس تهیه کنم
int boundWidth = this.richTextBox1.Width;
int boundHeight = this.richTextBox1.Height;
int x = boundWidth - this.richTextBox1.Width;
int y = boundHeight - this.richTextBox1.Height;
Bitmap bt = new Bitmap(boundWidth, boundHeight);
this.richTextBox1.DrawToBitmap(bt, this.ClientRectangle);
pictureBox2.Image = bt;
ronix3
سه شنبه 20 مهر 1395, 10:00 صبح
اصولی نیست ولی من از کد زیر استفاده می کنم اگه border style فرمتون نرمال باشه کد زیر درست انجام می شه اگه none هست ۲ تا عدد ۸ و ۳۱ رو حذف کنید اگه هم از کتابخانه هایی واسه طراحی فرم استفاده می کنید این اعداد رو باید با تست به دست بیارید
Graphics Graphics1;
Bitmap Bitmap1 = new Bitmap(richTextBox1.Width,richTextBox1.Height);
Graphics1 = Graphics.FromImage(Bitmap1);
Graphics1.CopyFromScreen(new Point(this.Location.X+richTextBox1.Location.X+8, this.Location.Y + richTextBox1.Location.Y+31),Point.Empty, richTextBox1.Size);
pictureBox3.Image = Bitmap1;
golestan1
سه شنبه 20 مهر 1395, 19:57 عصر
ممنون دوست عزیز اما به قول خودت اصولی نیست
چون اگه اندازه ریچ خیلی بزرگ باشه نمی تونه از کل اندازه عکس بگیره
محمد آشتیانی
سه شنبه 20 مهر 1395, 21:22 عصر
سلام
این لینک راه حل مشکل شما رو ارائه کرده
https://social.msdn.microsoft.com/Forums/windows/en-US/1454d078-c312-4741-88df-aa7eb306fe51/how-to-save-the-content-of-richtextbox-as-jpg-file?forum=winforms
این متد رو بنویسید
public Bitmap RtbToBitmap(RichTextBox rtb)
{
rtb.Update();
Bitmap bmp = new Bitmap(rtb.Width, rtb.Height);
using (Graphics gr = Graphics.FromImage(bmp))
{
gr.CopyFromScreen(rtb.PointToScreen(Point.Empty), Point.Empty, rtb.Size);
}
return bmp;
}
موقع فراخوانی ، نام کنترل richTextBox رو بعنوان پارامتر ورودی بهش بدید
pictureBox2.Image = RtbToBitmap(richTextBox1);
موفق باشید.
golestan1
پنج شنبه 22 مهر 1395, 08:25 صبح
چون متن ریچ ثابت نیست من از رویدادContentsResized اندازه ریچ رو به نسبت متون داخلش به صورت خودکار کوچک و بزرگ می کنم
متاسفانه وقتی اندازه بزرگ باشد کد آقای آشتیانی به درستی کار نمی کند
ایا روشی هست که با تغییر اندازه ریچ و محو شدن قسمت های پایین ریچ در زیر کنترل های دیگر باز هم بتوانیم از کل ابعاد ریچ عکس تهیه کنیم
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.