gdi+相关内容
我正在尝试将GDI +的以下定义包含到在Visual Studio 2017下编译的Win32 C ++项目中: #include #include #pragma comment (lib,"Gdiplus.lib") 我需要编译该项目以支持Windows XP.因此,在项目属性中,我选择:Platform Toolset as Visua
..
以下是显示问题的最少代码: static const int MAX_WIDTH = 320; static const int MAX_HEIGHT = 320; Gdiplus::Bitmap foregroundImg(MAX_WIDTH,MAX_HEIGHT,PixelFormat32bppPARGB); { Gdiplus::Graphics g(&foregroundI
..
我正在尝试执行签名捕获程序,并将客户签名保存为PNG或BMP格式.我的Picturebox代码运行良好,结果看起来比使用draw更好.我无法保存图像. Imports System.Drawing Public Class Form1 Dim color As System.Drawing.Pen = Pens.Black Dim bmp As Bitmap Pri
..
当我尝试使用BinaryFormatter序列化一些图像时,我将收到一个ExternalException-GDI +中发生了一个一般性错误."经过一段时间的努力,我决定创建一个简单的测试项目来缩小问题范围: static void Main(string[] args) { string file = @"C:\temp\delme.jpg";
..
如何绘制圆形渐变像这样在vb.net中? 解决方案 查看此很棒的页面.本文中的代码在C#中.这是您感兴趣的代码的vb.net端口,并针对矩形填充进行了更新:(基于文章的三角形填充示例.) Dim pgb As New PathGradientBrush(New Point() { _ New Point(0, 0), _ New Point(0
..
我已经在C#中创建了一个图像服务,该服务获取一个基本图层图像(JPG),再层叠一个更透明的PNG(32位),然后输出最终的JPG图像.我试图从此函数中每隔一毫秒压缩一次,而我的代码在GDI +中的DrawImage调用上遇到了瓶颈.托管代码在这里: // Load base image and create graphics Image image = LoadImage(renderSet
..
我正在从指定的文本生成图像,但是面临一个问题:我无法在生成的图像内部删除所绘制文本的顶部和底部填充. 我尝试在使用 Graphics.DrawString() 时更改字符串格式,但是我仅设法删除了左填充和右填充. private void button1_Click(object sender, EventArgs e) { Font font = new Font("Aria
..
我正在使用GDI +图形在屏幕上绘制4000 * 3000的图像,但这确实很慢.大约需要300毫秒.我希望它只占用不到10毫秒的时间. Bitmap *bitmap = Bitmap::FromFile("XXXX",...); //-------------------------------------------- //这部分大约需要300毫秒,太可怕了! int width
..
我正在ASP.NET应用程序中的.NET中使用GDI +进行大量图像处理. 我经常发现Image.FromFile()使文件句柄保持打开状态. 这是为什么?在不保留文件句柄的情况下打开图像的最佳方法是什么. NB:我没有做任何愚蠢的事情,例如将Image对象摆在身边-即使我是我也希望文件句柄保持活动状态 解决方案 在这个主题上,我经历了与其他一些发布者相同的旅程.我注意到
..
我想在DC中绘制多层.每层都有一些gdi/gdi +对象,并且与下层半透明. 解决方案 ,您需要使用ARGB系统进行着色. A代表透明度,取值介于0到255之间.值125是半透明的
..
我想知道如何在屏幕上搜索设置的矩形并将其与我指定的图像进行比较以查看其是否匹配? 让我们说它可以搜索x1 y1到x2 y2并与图像进行比较吗?并返回布尔值? 我知道Auto-it在此处具有类似的功能: http://www .autohotkey.com/docs/commands/ImageSearch.htm 有人做过可以参考的事情吗?我正在使用vb.net. 编辑:A
..
有人可以简短地说明如何使用GDI/GDI +创建位图运行时并用颜色填充它吗? 谢谢. 解决方案 CreateBitmap,CreateCompatibleBitmap或CreateDIBSection(如果要访问原始基础数据位) CreateCompatibleDC SelectObject位图进入已创建的设备上下文 FillRect或设备上下文上的朋友,并且绘制在所选位图上进
..
我不知道GDI32中是否有任何方法可以在表格的两个不相邻区域(例如矩形)上绘制字符串?. 如果到达第一个矩形的边缘,则文本应自动分割,如示例图片所示. 感谢您的帮助. 解决方案 一个示例,使用两个Labels和一个TrackBar. TrackBar确定一个标签内的字符串位置,每当该字符串移动时,该位置就会在第二个Label上反映出来. 此级联效果是使用 Paint()事件.
..
我制作了一个带有圆角边缘的自定义按钮,为此我使用CreateRoundRectRgn,在绘画事件中,这被称为对所有边缘进行圆角处理,当我运行程序时,一切正常,直到大约一分钟后,然后我得到以下异常(p = 0的值): 要添加的一件事是,由于颜色淡入(闪烁),按钮每秒经历约50次绘画事件 这是我的绘画活动: protected override void OnPaint(Paint
..
我想使用GDI +方法 Image::Save() 保存 DDB 到文件: HBITMAP hBitmap = CreateCompatibleBitmap(hDC, 200, 200) ; ... //hBitmap is a DDB so I need to pass an HPALETTE Gdiplus::Bitmap(hBitmap, ???HPALETTE??? ).Sa
..
我在WinForm上有一个要获取其位图表示形式的窗口. 为此,我使用以下代码(其中codeEditor是我想要的位图表示形式的控件): public Bitmap GetBitmap( ) { IntPtr srcDC = NativeMethods.GetDC( codeEditor.Handle ) ; var bitmap = new B
..
考虑以下来自标准System.Windows.Forms.Form 的代码 protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); Rectangle test = new Rectangle(50, 50, 100, 100); using (LinearGradientBrush br
..
当GDI +发布时,我记得所有关于在Windows中显示内容的“新的,更快的,更好的"方式的烦恼.但是每次查看时,在我看来,它实际上只是GDI的COM包装. 是真的吗?还是GDI +真的是一个独立的图形库,只与GDI共享一些范例? 我个人不确定它如何独立,但是我从未见过一种确定的陈述. 解决方案 图形硬件加速了许多GDI功能,并且某些GDI +例程可能在下面使用GDI.但是大多
..
这两个库之间有什么区别吗? 解决方案 根据有关GDI的维基百科文章: 随着Windows XP的引入,不赞成使用GDI,而是推荐其后继者基于C ++的GDI +子系统. GDI +添加了抗锯齿的2D图形,浮点坐标,渐变阴影,更复杂的路径管理,对JPEG和PNG等现代图形文件格式的内在支持,以及在2D视图管道中支持仿射变换的构成.
..
是否可以使用BitBlt直接复制出GDI +位图而不使用GetHBitmap? GetHBitmap较慢,因为除了BitBlt副本之外,它还制作了整个映像的新副本,并且速度比BitBlt副本慢,并且必须处理给定的HBITMAP.图片很大. 是否有一种方法可以指向BitBlt以使用原始GDI +图像的像素数据? 编辑:我可以找到GDI +位图像素数据在内存中的位置的指针.我可以创建
..