PDA

View Full Version : نحوه كار با آبجكت Graphic



iran400
چهارشنبه 12 تیر 1387, 18:07 عصر
با سلام
بنده مي‌خواهم يك Graphic رو كه سيستم خودش توليد كرده را بتوانم بعنوان يك فايل jpg ذخيره كنم
ضمن اينكه مي‌خواهم از همين فايل پرينت بگيرم

نحوه كار با آن به چه صورت مي‌باشد؟

راستي بنده كلي در اين مورد جستجو كردم ولي به نتيجه نرسيده ام!
ممنون مي‌شوم سريعتر راهنمايي نماييد.

با تشكر

mehdi.mousavi
چهارشنبه 12 تیر 1387, 18:22 عصر
با سلام
بنده مي‌خواهم يك Graphic رو كه سيستم خودش توليد كرده را بتوانم بعنوان يك فايل jpg ذخيره كنم
ضمن اينكه مي‌خواهم از همين فايل پرينت بگيرم

نحوه كار با آن به چه صورت مي‌باشد؟

راستي بنده كلي در اين مورد جستجو كردم ولي به نتيجه نرسيده ام!
ممنون مي‌شوم سريعتر راهنمايي نماييد.

با تشكر


سلام.
از تابع زیر استفاده کنید:



[System.Runtime.InteropServices.DllImport("gdi32.dll")]
private static extern bool BitBlt(IntPtr hdcDest, int nXDest, int nYDest, int nWidth, int nHeight, IntPtr hdcSrc, int nXSrc, int nYSrc, uint dwRop);

private const Int32 SRCCOPY = 0x00CC0020;
public static Bitmap FromGraphics(Graphics g)
{
int w = (int)g.VisibleClipBounds.Width;
int h = (int)g.VisibleClipBounds.Height;
Bitmap b = new Bitmap(w, h, g);
using (Graphics bg = Graphics.FromImage(b))
{
IntPtr gdc = g.GetHdc();
IntPtr bgdc = bg.GetHdc();
BitBlt(bgdc, 0, 0, w, h, gdc, 0, 0, SRCCOPY);
g.ReleaseHdc(gdc);
bg.ReleaseHdc(bgdc);
}

return b;
}



سپس Bitmap دریافتی از متود فوق رو میتونید Save کنید.