gdi 相关问题

图形设备接口(GDI)是Windows操作系统下用于绘制图形基元和文本的独立于设备的纯软件图形API。它是用于呈现Windows GUI元素的底层基础。

C#.NET 中的 JPEG 2000 支持

.NET 似乎无法使用 GDI 库打开 JP2 (Jpeg 2000) 文件。我在谷歌上搜索过,但找不到任何库或示例代码来执行此操作。 有人有什么想法吗?我真的不...

回答 7 投票 0

HBITMAP 添加透明度/Alpha 通道

我正在尝试向 hbitmap 对象添加透明度,但它从不绘制任何内容:/ 这是我用来绘制手柄的代码: HDC hdcMem = CreateCompatibleDC(hDC); HBITMAP hbmOld = (HBITMAP)

回答 1 投票 0

如何使用 MFC 或 GDI 或 GDI+ 设置位图中所有像素的 alpha 值

我正在使用 MFC 应用程序。我使用内存 DC 创建了一个位图,我想将其保存到 DIB 文件。 我发现到目前为止这段代码是最优雅的: 无效保存(CBitmap * 位图){ CImage图像; 图像....

回答 2 投票 0

使用 FFmpeg AutoGen 保存到位图适用于 Windows,但不适用于 Linux

我正在使用 FFmpeg.AutoGen 来解密视频并将帧保存为位图。代码使用 dotnet core,我想让它同时适用于 Windows 和 Linux。 代码类似于示例专业...

回答 2 投票 0

如何为 32 位位图生成单色位掩码

在 Win32 下,通过执行以下操作从位图生成单色位掩码以供透明度使用是一种常见技术: SetBkColor(hdcSource, clrTransparency); 验证(BitBlt(hdcMask,0,...

回答 5 投票 0

如何找到动态加载/卸载 DLL 期间发生的 GDI 泄漏?

如果我加载和卸载用Delphi编写的DLL,它使用dxForms.pas(DevExpress)(仅使用,不创建表单),则任务管理器显示的GDI句柄会随着每次加载/卸载而增加。我读了...

回答 1 投票 0

使用 Win32 API 查找图标资源中的图标数量

我有一个 *.ico 文件,其中包含多个不同大小的图标,作为资源链接到我的可执行文件。我使用此资源通过 RegisterClassEx() 设置应用程序的图标,即: wcx.hIcon =

回答 1 投票 0

如何在GDI+颜色中设置单独的颜色?

GDI+ Color 类具有 Get* 函数,它返回特定颜色和 alpha 通道的值(如 GetR 和 GetRed;其中两个用于同一件事!),同时缺少 Set for

回答 1 投票 0

CreateCompatibleBitmap 和 CreateDIBSection(内存 DC)

从我在这里读到的内容看来,大多数 Windows GDI 函数都得到了加速。例如,调用 BitBlt() 或 AlphaBlend() 会使用硬件加速(如果可用)。它还提到...

回答 1 投票 0

Win32 api 中的画笔

我正在尝试在 C++ 中将整个屏幕颜色更改为蓝色。 这是我的代码: #包括 #包括 #包括 #包括 #包括 我正在尝试在 C++ 中将整个屏幕颜色更改为蓝色。 这是我的代码: #include <iostream> #include <tchar.h> #include <windows.h> #include <wingdi.h> #include <winuser.h> void Color() { int screenWidth = GetSystemMetrics(SM_CXSCREEN); int screenHeight = GetSystemMetrics(SM_CYSCREEN); HWND hwnd = GetDesktopWindow(); HDC hdc = GetWindowDC(hwnd); COLORREF color = 0x000000FF; HBRUSH brush = CreateSolidBrush(color); SetDCBrushColor(hdc, color); PatBlt(hdc, 0, 0, screenWidth, screenHeight, PATCOPY); ReleaseDC(hwnd, hdc); } 我的问题是它将颜色设置为白色而不是红色。 我搜索了问题的解决方案,但得到了 Photoshop 教程。 我做错了什么? 抱歉回复晚了,但如果您想要将程序的背景颜色设置为蓝色,您应该考虑执行以下操作。 - 处理 WM_PAINT 事件中屏幕颜色的变化,以便背景每次都可以重新绘制为蓝色。 -为此,请在 WM_PAINT 案例中创建一个 PAINTSTRUCT 实例。 -调用 BeginPaint(hwnd, PAINTSTRUCTURE) 并将返回值存储在 HDC 对象中。此函数返回 PAINSTRUCT 窗口的设备上下文的句柄,该句柄作为参数传递给它。该函数还负责其他功能,例如了解需要绘制窗口的哪些部分及其坐标。 下次打电话FillRect(HDC,RECT,HBRUSH)。该函数接收由 HDC 返回的 BeginPaint()、一个存储需要重绘区域的 PaintStructure 成员变量和一个 HBRUSH。 - HBRUSH 是一种可以让您在屏幕上绘图的工具。该工具可以存储颜色和样式(据我所知)。因此调用 FillRect 并传递 HBRUSH 将使用 HBRUSH 的颜色。 下面是这个的代码 case WM_PAINT: { PAINTSTRUCT ps; HDC dc = BeginPaint(hwnd, &ps); HBRUSH hbr = CreateSolidBrush(RGB(0, 100, 150)); FillRect(dc, &ps.rcPaint, hbr); DeleteObject(hbr); EndPaint(hwnd, &ps); break; } 我大约 10 分钟前才了解到这一点,并正在寻找有关该主题的问题,以便我能获得更多理解。如果我错了请原谅我。

回答 1 投票 0

默认 STATIC 控件高度为 8(对话框单位)并且文本适合,但 DrawText() DT_CALCRECT 说它太小?

在对话框内,我检查了在资源编辑器中使用默认高度 8 个对话框单位创建的 STATIC 控件。 文字看起来不错。 但是,如果我用

回答 1 投票 0

默认静态控件高度为 8(对话框单位) - 文本适合,但 DrawText DT_CALC 说它太小?

在对话框内,我检查了一个静态控件,该控件是在资源编辑器中使用默认高度 8 个对话框单位创建的。 文本看起来不错,但是如果我用 DrawTe 检查所需的文本高度...

回答 1 投票 0

使用 ILGPU 进行 GPU 加速运行 C# 代码时出现问题

我正在尝试使用 ILGPU 进行 GPU 处理来加速我的 C# 代码。但是,我遇到了以下错误: 错误 CS0117:“加速器”不包含“创建”的定义。

回答 1 投票 0

使用 winGDI 时,解压缩的位图图像由于没有明显原因而无法正确渲染

我一直在尝试制作自己的自定义 PDF 编辑器,并且我已经制作了一个 PDF 解析器,它对于任何 PDF 功能都工作得非常好,直到图像出现。首先,我的 PDF 中的图像是完整的...

回答 1 投票 0

获取GDI字体参数

要通过 CreateFontA 或 CreateFontIndirectA 创建新字体,需要许多参数。如何提取这些参数来制作“两倍大”或“两倍重量”版本的

回答 1 投票 0

在位图上写入文本,HBITMAP 与 HDC“不兼容”

我正在尝试使用提到的代码在内存中的 BITMAPINFO 上写入文本。我的代码如下。 BITMAPINFO MyBMInfo = {0}; //调试 MyBMInfo.bmiHeader.biSize = sizeof(MyBMInfo.bmiHeader); //调试 int李...

回答 1 投票 0

包含不透明文本和按钮的透明窗口

我正在创建一个非侵入式弹出窗口,以在处理耗时的操作时通知用户。 目前,我正在通过调用 SetLayeredWindowAttributes 设置其透明度,这给出了...

回答 3 投票 0

了解设备上下文

作为 MFC 的新手,我经常看到设备上下文 (DC)。我隐约明白这与绘图有关,但我能找到的任何地方都没有很好地解释具体细节......

回答 2 投票 0

滚动时 MFC 中的 BitBlt 问题:未绘制新的可见区域

我正在努力在利用 CScrollView 的 MFC 项目中使用内存 DC 实现双缓冲。我的自定义视图类派生自 CScrollView。 但是,我在 scro 时遇到问题...

回答 1 投票 0

用GDI+拖动鼠标绘制椭圆

通过一个小小的改动,下面链接中WM_MOUSEMOVE下的代码可以通过拖动鼠标来绘制一个10像素粗的红色椭圆。第一个 Ellipse 函数删除前一个椭圆。 https://学习。

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.