问题标签 [graphics32]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
977 浏览

delphi - GIF动画TImage/Timage32

目标是让动画 GIF 在图像组件内播放,即使在调整其中一个图像组件的大小后也具有良好的图像质量。

TImage 示例

这是调整大小的TImage,非常糟糕的图像质量但完美的动画:

图像示例

TImage32 示例

这是TImage32从 graphics32 库调整大小的,图像质量非常好,但根本没有动画,只有第一帧可见:

图形 32 示例

我需要让TImage32组件播放动画或让TImage组件进行更好的重采样。

0 投票
0 回答
102 浏览

delphi - Graphics32 和 VCL 样式

我正在使用 Graphics32 TColorPickerGTK 组件,不幸的是,它不支持 VCL 样式。我的第一个想法是像这样清除 PaintColorPicker() 方法中的 FBuffer,

非常适合非纹理样式,但是对于像 Glossy 或 Jet 这样的样式,没有太多的印记。

顿悟,我在路上,用 Create() 方法复制控件下的位图,然后在 PaintColorPicker() 方法上重新绘制。

如何访问表单的底层画布,以便 CopyRect 工作?

0 投票
1 回答
501 浏览

delphi - TBitmap32.Assign() 异常行为

Graphics32 TBitmap32.Assign() 有什么问题?为什么 TBitmap32 没有保留原始图像的透明度,而 TBitmap 一切都很好?这是一个示例代码:

这是结果的屏幕截图:
在此处输入图像描述

这是一个 Graphics32 库(版本是 github 的最新版本)错误吗?还是 TWICImage 错误?还是 Delphi 10.2.3 的错误?还是我做错了什么?如何解决这个问题?

原始的 overlay.png 文件:
在此处输入图像描述

0 投票
1 回答
120 浏览

delphi - GR32_VectorUtils.Circle 方法的工作方式与我的预期不同

我正在使用以下代码块在 TBitmap32 (x:0,y:0) 点上画一个圆圈。

Pts := Circle(0,0,35);

PolylineFS(Bitmap32, Pts, clBlack32, True, 3);

但是,绘制的圆是在指定坐标后面绘制的。圆的一半位于 TBitmap32 的负坐标中。

Pts := Circle(35,35,35);

当我尝试这行代码时,x 坐标几乎绘制到了正确的点,但 Y 点仍然不在正确的坐标中。

我希望这个函数表现得像 TCanvas.Ellipse。我尝试了很多东西,但都没有成功。

0 投票
2 回答
329 浏览

delphi - 如何从 Bits 数组创建 Bitmap32?

我有一个函数,它返回一个指向图像存储为 Bitmap32.Bits 的内存的指针:

在代码的某个地方,我需要从内存中的这个位创建一个新的 Bitmap32。如何正确执行?
我尝试执行以下操作:

但我收到一个错误:

E2129 无法分配给只读属性

为@RudyVelthuis添加:

0 投票
1 回答
220 浏览

delphi - 即时更改 Graphics32 的 TImgView32 的重采样器内核

我想即时更改 Graphics32 的 TImgView32 的重采样内核。但是没有明显的区别。这是代码:

0 投票
1 回答
1064 浏览

graphics32 - Graphics32:TBitmap32 和错误“无法分配 DIB 句柄”

我正在尝试制作一个新的 TBitmap32 对象:

我收到错误:“无法分配 DIB 句柄”

我该如何解决这个问题?20K x 20K 位图并没有那么大。它小于 1.5 GB。

0 投票
0 回答
1052 浏览

delphi - 是否可以在不复制像素的情况下将 TBitmap32 转换为 TBitmap?

我可以在不复制像素的情况下将 TBitmap32 对象转换为 TBitmap (pf32bit) 对象吗?

我找到了 2 种将 TBitmap32 复制到 TBitmap 的方法,而不会明显地复制像素,但可能有像素在引擎盖下被复制。或者也许一种方法比另一种更好?知道WinAPI的人可以建议吗?

方法二

0 投票
1 回答
93 浏览

delphi - Graphics32 的 TImgView32 中的滚动条损坏

我想在 TImgView32 上显示图像,但滚动条明显坏了。当我放大,调整窗口大小,然后缩小我可以看到:

滚动条损坏

我已将 ImgView321.ScrollBars.Visibility 设置为 svAuto 所以现在不应该有任何滚动条。

这是我的整个代码。单元1.dfm:

和 Unit1.pas:

0 投票
1 回答
359 浏览

delphi - 从资源文件加载的透明 PNG 图像,使用 Grapics32 调整大小并在 Canvas 上绘制

我需要一点帮助...

我的应用程序资源中有一个透明的 PNG 图像。到目前为止,我将它加载到 a 中TPngImage并使用Canvas.Draw(X, Y, PngImage);. 它是透明绘制的。现在我将我的应用程序更新为 DpiAware,我需要缩放所有图像。我需要一个高质量的重采样器,我选择使用 Graphics32。我设法进行了重新采样,但我不知道如何保持透明度......我尝试了所有我能想到的......以下代码的结果是在透明区域中用黑色绘制的图像...... .

这是我编译成资源的透明PNG图像: https ://postimg.cc/3yy3wrJB

我在这里找到了一个类似的问题,但我不使用带有 a 的图像TImage,我直接在画布上绘制它。在唯一的答案中,大卫说:

无论如何,如果是这样,我会将 TImage 的透明度支持与 TBitmap32 的重新采样能力结合起来,以这种方式构建解决方案。将原始图像保存在 TBitmap32 实例中。每当您需要将其加载到 TImage 组件中时,例如在重新调整大小时,请使用 TBitmap32 执行内存中重新调整大小并加载该重新调整大小的图像。

这正是我想要做的,但我不知道为什么透明度不起作用。有任何想法吗 ?