System.Drawing.Image im = System.Drawing.Image.FromFile(@"c:\a.jpg");
Graphics srcg = Graphics.FromImage ( im ) ;
Bitmap dest = new Bitmap(300,300, srcg);
Graphics destg = Graphics.FromImage(dest);
IntPtr srcPtr = srcg.GetHdc();
IntPtr destPtr = destg.GetHdc();
BitBlt(destPtr,0,0,300,300,srcPtr,0,0,0x00CC0020);
dest.Save(SavePaths,System.Drawing.Imaging.ImageFormat.Jpeg );
destg.ReleaseHdc(destPtr);
srcg.ReleaseHdc(srcPtr);
im.Dispose();
srcg.Dispose();
dest.Dispose();
destg.Dispose();
Graphics srcg = Graphics.FromImage ( im ) ;
Bitmap dest = new Bitmap(300,300, srcg);
Graphics destg = Graphics.FromImage(dest);
IntPtr srcPtr = srcg.GetHdc();
IntPtr destPtr = destg.GetHdc();
BitBlt(destPtr,0,0,300,300,srcPtr,0,0,0x00CC0020);
dest.Save(SavePaths,System.Drawing.Imaging.ImageFormat.Jpeg );
destg.ReleaseHdc(destPtr);
srcg.ReleaseHdc(srcPtr);
im.Dispose();
srcg.Dispose();
dest.Dispose();
destg.Dispose();
解决方案 »
- WPF 窗体实现拉伸,页头用什么控件实现双击最大化和还原?
- CSharp初学者!求学习方法
- 大量用户发数据,socket服务端接收暂存?
- 高手帮忙:C#winfor程序经常跳出错误:System.ArgumentOutOfRangeException
- 请问怎么用web service实现这样的功能,只有90分全给了。。。
- 请问谁能帮我简单的写下文章里面的源代码!(最好是C#)
- SPY得到固定控件ID后getdlgitem不行
- 再次提问关于dataGrid中实现某列下拉(comboBox)的问题!希望高手指点!
- 一个关于DataGrid的问题。
- 急急急!!!分分分!!!C#的WEB程序不能同时打开两个的问题?
- 菜鸟问一个基于c#windows窗口下编程的小问题,希望老鸟帮忙看一下啊!
- 问一个大家比较简单和有兴趣的问题!
找到另外一个例子,他的代码和你很类似:
http://www.c-sharpcorner.com/Graphics/ScreenCaptFormMG.asp Graphics g1 = this.CreateGraphics();
Image MyImage = new Bitmap(this.ClientRectangle.Width, this.ClientRectangle.Height, g1);
Graphics g2 = Graphics.FromImage(MyImage);
IntPtr dc1 = g1.GetHdc();
IntPtr dc2 = g2.GetHdc();
BitBlt(dc2, 0, 0, this.ClientRectangle.Width, this.ClientRectangle.Height, dc1, 0, 0, 13369376);
g1.ReleaseHdc(dc1);
g2.ReleaseHdc(dc2);
MyImage.Save(@"c:\Captured.jpg", ImageFormat.Jpeg);但是他的可以,你的不行。
还在调试中...
System.Drawing.Bitmap myImage = new System.Drawing.Bitmap(Screen.PrimaryScreen.Bounds.Width,
Screen.PrimaryScreen.Bounds.Height,System.Drawing.Imaging.PixelFormat.Format16bppRgb555);
Graphics gr1 = Graphics.FromImage(myImage);
IntPtr dc1 = gr1.GetHdc();
IntPtr dc2 = GetWindowDC(GetDesktopWindow());
BitBlt(dc1, 0, 0, Screen.PrimaryScreen.Bounds.Width,
Screen.PrimaryScreen.Bounds.Height, dc2, 0, 0,13369376);
gr1.ReleaseHdc(dc1);