问题标签 [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 投票
0 回答
181 浏览

function - 在 C++ Builder 下使用 Delphi 组件调用错误的函数

我正在尝试使用 Graphics32 包。Graphics32 编译和安装没有任何问题。当我尝试在 C++ Builder XE3 下执行(调试)以下代码时

它调用另一个成员函数 SaveToStream,我可以在调试时跟踪并单步执行,直到 AV 上升。

我以前从未遇到过这样的行为。我是否缺少任何编译器指令或一些解决方法来进行正确的函数调用?

更新:我使用来自 SVN 的 Graphics32 源。如果我使用修订版 2122之前的代码,一切正常。

0 投票
2 回答
374 浏览

c++ - 需要帮助将 Graphics32 Delphi 示例转换为 C++

使用 BDS2006:我正在尝试在 C++ 中转换 Graphics32 Resampler_ex 示例,但我什至无法理解某些代码中发生了什么,或者如何在 C++ 中重写该代码。

在该示例中,有一个组合框可以选择要使用的重采样器:这是他的 OnChange 事件中的 Deplhi 代码:

在哪里:

我的问题在这条线上

我如何在 C++ 中转换这一行?

在评论和答案之后编辑:

好吧,似乎超出了我的理解。就我的目的而言,无需太多麻烦即可复制此代码的功能就足够了。

是否可以仅使用基于 itemindex 的开关来实例化正确的类?

这些是我应该实例化的 4 个类:

我不明白我怎么能将其中一个分配给“内核”....

0 投票
2 回答
1307 浏览

delphi - 如何沿图像中的弧线渲染文本?

我在 Delphi 7 中有以下代码沿 DVD 的弯曲边缘绘制版权文本。我们使用的是旧版本的 Graphics32。

我们正在使用 Graphics32 的最新代码切换到 Delphi XE5,并且该代码不再编译;特别是 LoadArcCurve 和 drawingBuffer.RenderFittedText 不再作为方法存在。

我使用最新的 Graphic32 代码在 Delphi XE5 中有以下代码片段,并尝试了各种其他类似的方法,但均未成功。

我可以找到的新 Graphics32 中的所有示例似乎都直接绘制到 Delphi 控件画布上,而我需要绘制到 TBitmap32 上。

如何使用 Delphi XE5 和最新版本的 Graphics32 在图像/位图中沿弧线渲染文本?

0 投票
1 回答
1353 浏览

delphi - 在 OpenGL 渲染上下文之上覆盖图形

我正在尝试在我的 OpenGL 渲染场景之上叠加图形。

我已经设法让它启动并运行,但 FPS 的下降有点太多了。

我目前正在将 GLScene 与 Graphics32 结合使用。

我所做的是将 GLScene 渲染上下文渲染到位图,将该位图应用到 TImageView32,并在 TImage32 内进行一些最终的 UI 触摸。

我用来渲染位图的代码如下,它也降低了 FPS:

我尝试了一些其他代码(见下文),它给了我一个实时渲染,但我无法修改 ImageViewer32 的“位图”属性。换句话说:正在渲染 GLScene 渲染上下文,但没有渲染我自己的图形。编码:

如何在渲染上下文之上正确叠加图形,或复制渲染上下文输出,而不会丢失 FPS?

0 投票
0 回答
1196 浏览

delphi - Delphi如何将透明图层添加到TImage32

我需要能够将透明 PNG 图像作为图层添加到 ImgView32(来自 graphics32 库)。有谁知道如何做到这一点?

基本上,我可以将任何图像作为图层添加到我的 Image32,但所有图像(即使它们本质上是透明的)都有白色背景。我需要解决这个问题。有人知道吗?

这就是我将图像添加为图层的方式:

所以我设置Bitmap.DrawMode := dmTransparent;似乎并不重要 它什么也不做。即使我添加了 PNGImage 来使用,除了我现在可以选择 png 图像添加到我的图像之外,没有任何变化

所以请告诉我我做错了什么以及我应该怎么做才能解决这个问题。

谢谢

编辑

我知道将PNG加载到Bitmap32中,如此链接http://graphics32.org/wiki/FAQ/ImageFormatRelated中所述,但显然我“无法将TBitmap32分配给TBitmapLayer”,因此在将透明PNG加载到Bitmap32之后就好了(理论上)如何将它分配给我的图层?

0 投票
1 回答
570 浏览

delphi - Delphi Graphics32 在 ImgView32 中调整图层大小

我希望能够通过单击按钮以编程方式调整一层(选定的一层)的大小。所以基本上我有一个 ImgView32,我给它添加了图层。选择了最后一个,然后我想按下一个按钮,然后单击该按钮,我希望放大所选图层...

我希望能够画出水平和垂直的线条,以允许用户绘制房屋的布局(2D)。但我希望用户能够在没有鼠标的情况下调整线条的大小......所以他应该能够在编辑框中输入宽度和高度,然后单击按钮将尺寸应用于相应的(选定的)行。

我怎样才能在graphics32中做到这一点?

我试过这样:

但是所选图层保持相同大小并且内容缩小......我不知道我做错了什么。请帮忙。

谢谢

0 投票
1 回答
366 浏览

delphi - Delphi graphics32删除选中图层

graphics32 是一个非常好的库,但我无法弄清楚如何正确使用它。例如 LAYERS,它们是一个很棒的功能。

  • 我可以将图层添加到 ImageView、选择它们、移动它们、调整它们的大小,但是,如果我想删除它们,我不知道该怎么做。

  • 图层也被选中,但我无法捕获它们上的任何关键事件。我的意思是我想使用键盘上的箭头将图层移动一个像素,但我不能。

有谁知道如何解决这些问题?

请帮忙谢谢

0 投票
1 回答
1208 浏览

delphi - Delphi 组件安装问题

安装 SVN 版本的 graphics32 后,在 ToolPallette 中看不到组件。(Windows 8.1,德尔福 XE)

我的意思是,我看到了 Graphics32 组,但它是空的。当我导航到 Installed Packages 时,我看到了那里的包,它被选中了......当我点击它,然后点击“组件”按钮时,我可以看到组件,但同样,在组件托盘上它们是不可见的。所以我在将这些组件添加到我的表单时遇到问题。

我刚刚从 SVN 主干从版本 1.9.1 升级到版本 2.0(测试版),因为我需要最新版本的功能,但是我在正确安装它时遇到问题。

请帮忙

谢谢

编辑 在编译和安装库之后,我将 dcu`s 和 pas 文件复制到程序文件(发布和调试)中的 Delphi 文件夹中,因为这是我对所有组件所做的,所以我不依赖于以后的文件夹更改.

0 投票
1 回答
1452 浏览

delphi - Delphi graphics32文字图层

我正在尝试为我的图像编辑应用程序创建一个 textTool,所以我在主窗体上有一个按钮,上面写着“文本工具”。当我单击它时,会显示一个新表单(模式),允许我选择字体并在 RichEdit 中输入文本。

我的想法是让用户在 RichEdit 中格式化他的文本,当他满意时,他应该点击模式按钮,文本(格式化)将插入到我图像的新图层中。另外我的想法是将文本视为文本行并在新的 Bitmap32 中单独渲染它们,然后将获得的位图分配给新的图层。

为此,我使用此功能

并解析richedit的行并像这样获取每个行的textWidth:

所以我很容易获得最大宽度线(maxwidth),我打算用它来生成我的Bitmap32。

因此,对于我的 Bitmap32,我使用以下代码(不幸的是,它没有显示任何内容)

所以我没有收到任何错误,但新图层没有显示......就像什么都没发生一样。

我尝试使用宽度和高度的固定值(我都使用了 200 bor),但我的 ImageView 上仍然没有显示任何内容,所以我认为位置可能有问题?

请帮助我解决这个问题。

非常感谢

0 投票
3 回答
707 浏览

delphi - Delphi graphics32将图层保存为透明PNG出错

我有一个奇怪的问题,我不认为我可以解决它。我有一个包含图层(透明 png 图像)的 ImgView,我打算将所有图层保存为 png 文件(如“保存项目”的东西),以便稍后我可以重新打开它们并将它们放在我离开它们的地方。(就像“打开项目”一样)这是我的问题,以下步骤可以正常工作:

  1. 我添加图层(透明的 PNG 文件)
  2. 我移动它们并将它们放在我想要它们的地方
  3. 我按保存项目(所以在这里我将所有图层保存为 png 图像文件)
  4. 有用

如果我执行以下步骤,则会出现问题:

  1. 我添加图层(透明的 PNG 文件)
  2. 我移动它们并将它们放在我想要它们的地方
  3. 我更改了图层的位置(例如:发送回一层)(所以这一步是不同的)
  4. 我按保存项目(所以在这里我将所有图层保存为 png 图像文件)
  5. 它因“模块'MyApp.exe'中地址005380FB的访问冲突。读取地址000000C0”而崩溃

现在它只给了我上面的错误,但在几次运行前,它把我指向了这一行:

因此,如果我更改图层的索引...我不能再将它们另存为 PNG ?!?!?!

这是我的保存过程:

... 和

有什么问题?请帮忙...

编辑 我想我发现了我的问题......当我移动图层时,唯一的方法(我知道)将它清理干净,是将所有图层加载到图像列表中(TBitmap32List 是我当时的选择)和之后清理图层并以所需的顺序将它们从图像列表重新添加到我的 ImageView 中。我只能假设这是出了问题的地方。一定是因为在图层中我有透明的 PNG,当我将它们加载到 Bitmap32List 时,我将它们作为 BMP 加载。在继续之前,我必须寻找另一种方式来重组我的图层。我会用我的解决方案更新你。如果你们中的任何人知道在 ImageView32 中重新排序图层的更好方法,请告诉我。

编辑

因此,请在下图中观察 GUI 已完成并且正在工作。我有代表图层的面板,我可以移动它们(正如您在图像中看到的那样,我正在拖动图层“Elementul 0”并在链中向上移动它)。 在此处输入图像描述 我再说一遍,当我使用临时文件按顺序向上或向下移动图层时,我的逻辑也有效。其中一个答案建议我应该只使用 Index 属性来更改图层层次结构中的图层位置,我说如果不至少向图像添加新图层就无法完成。所以这不是一个双重问题。这只是对我收到的答案之一的回应。

谢谢