PDA

View Full Version : گزفتن عکس از قسمتی از فرم در صورت minimize بودن فرم



fri jun
چهارشنبه 07 آبان 1393, 14:06 عصر
با سلام

من می خوام یک قسمت از فرمم رو ازش عکس بگیرم ، حتی اگه فرم minimize بود

کدی که الان دارم در صورت اکتیو بودن فرم درست کار میکنه ، ممنون میشم کسی راهنماییم کنه...

ya ali
شنبه 10 آبان 1393, 07:40 صبح
Bitmap b = new Bitmap(form1.Width, form1.Height);
form1.DrawToBitmap(b, new Rectangle(Point.Empty, form1.Size));

fri jun
یک شنبه 11 آبان 1393, 13:39 عصر
مرسی از راهنمایید دوست عزیز

فقط به سوال دیگه ، وقتی که می خوام این bitmap رو ، تو حافظه save کنم اطلاعات درست ذخیره نمیشه

این کدی هست که من دارم :



private void timer1_Tick(object sender, EventArgs e)
{
Bitmap b = new Bitmap(_videoViewer.Width, _videoViewer.Height);
_videoViewer.DrawToBitmap(b, new Rectangle(0, 0, _videoViewer.Width, _videoViewer.Height));
MemoryStream ms = new MemoryStream();
b.Save(ms, ImageFormat.Png);
byte[] bytes = ms.GetBuffer();
}

fri jun
دوشنبه 12 آبان 1393, 16:07 عصر
دوستان یه لطفی میکنید راهنمایی کنید؟

pedram.11
دوشنبه 12 آبان 1393, 16:40 عصر
سلام اینو امتحان کنید:
byte[] bytes = ms.ToArray();
اگه نشد:
MemoryStreamms = new MemoryStream();
b.Save(ms, ImageFormat.Png);
ms.Position = 0;
byte[] bytes = new byte[ms.Length];
ms.Read(bytes, 0, (int)ms.Length);
ms.Close();
ms.Dispose();
ms = null;

fri jun
دوشنبه 12 آبان 1393, 17:45 عصر
مرسی از راهنمایید اما بازم نشد...

این کدی هست که قبل از تغییر کامل درست کار می کرد و در قسمت سرور دریافت میشد و نمایش داده میشد :

Bitmap bitmap = new Bitmap(_videoViewer.Width, _videoViewer.Height); using (Graphics g = Graphics.FromImage(bitmap))
{
Rectangle rectanglePanelVideoPreview = _videoViewer.Bounds;
sourcePoints = _videoViewer.PointToScreen(new Point(_videoViewer.ClientRectangle.X, _videoViewer.ClientRectangle.Y));
g.CopyFromScreen(sourcePoints, Point.Empty, rectanglePanelVideoPreview.Size);
}

pedram.11
دوشنبه 12 آبان 1393, 18:02 عصر
شاید مشکل از ارسال و دریافت دیتا باشه. اول مطمئین شید که تصویر درست ساخته میشه و به باینری تبدیل میشه. مثلا بصورت فایل ذخیرش کنید:
Bitmap b = new Bitmap(this.Width, this.Height);
this.DrawToBitmap(b, new Rectangle(Point.Empty, this.Size));
MemoryStream ms = new MemoryStream();
b.Save(ms, ImageFormat.Png);
byte[] bytes = ms.ToArray();


FileStream fs = new FileStream("C:/x.png", FileMode.OpenOrCreate, FileAccess.Write);
BinaryWriter bw = new BinaryWriter(fs);
bw.Write(bytes);
bw.Close();




من تست کردم مشکلی نبود. احتمالا مشکل از سرور یا کلاینتتون هست...