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

delphi - 图像中的鼠标右键禁用图像外的第一次单击鼠标事件

我有一个带有 TImgView32 控件(Graphics32 的一部分)的 Delphi 应用程序。我正在处理鼠标移动和鼠标按下事件,这是有效的。问题是每当我在图像中使用鼠标右键时,当我松开鼠标右键(仍在我的图像内——我在松开之前没有离开图像之外)——鼠标左键不运行按钮、复选框、最小化或任何其他控件的事件。它在 TImgView32 中执行额外的鼠标按下事件,直到再次单击。当鼠标不再在我的图像中而不点击两次时,如何让鼠标点击进入正确的控制?我用XE3和2007都编译过,结果是一样的。

0 投票
2 回答
1290 浏览

delphi - Delphi冻结窗体关闭与自定义组件

我开发了一个组件来实现基于Graphics32的 ImgView32 的平移和缩放功能。可以将组件放在 TImgView32 旁边,设置我的组件的 Image 视图属性,一切都很好,并且按预期工作。但是,一旦我尝试关闭托管我的组件的表单和 ImgView32,Delphi IDE 就会冻结。我的第一个想法是仍然链接到我的组件的 ImgView32 在我的组件之前被销毁,所以我实现了 Delphi 标准通知机制。问题仍然存在。这是我的组件的源代码。该组件包含在运行时包中,而另一个设计时包正在使用运行时包并注册该组件。

更新,作为 Rob 有用的调试技巧的结果:事实证明,组件在对 Notification 方法的无休止调用中挂起。也许那是对某人的暗示。

0 投票
1 回答
2693 浏览

delphi - Delphi - Graphics32,绘制抗锯齿圆角矩形

如何使用 Graphics32 绘制抗锯齿圆角矩形?

我设法用 TPolygon 在 bitmap32 画布上制作了一个普通矩形,但我找不到任何关于绘制圆角的参考。将不胜感激一些代码。

0 投票
1 回答
1488 浏览

.net - 是否有任何 .NET dll 可以执行 GIMP 或其他一些图像程序工作?

我想知道是否有任何 dll 可用于导入到我的 C# 项目中以处理图像。我期望做的是:

  1. 增加/减少亮度,曝光
  2. 将两张照片放在同一位置,并使用像 Photoshop 那样的“乘法”功能。
  3. 缩放和调整大小

就我而言,我发现了 gimp#,这不是我所期望的,因为它只适用于 GIMP 插件。再挖一点,我发现了 Graphics32。

Graphics32 正是我在功能方面所需要的,但它不是为 .NET 制作的

我不确定是否可以编译 Graphics32 代码并以某种方式在 C# 中使用它(我正在考虑)

0 投票
0 回答
840 浏览

delphi - 结合 Graphics32 组件的旋转和缩放功能

再会。我想合并两个函数来操作位图图像。我想旋转和缩放相同的图像。我所做的是使用给定的示例之一,即 TRotLayer。我的计划是改变 TRotLayer。这就是我所做的。

在第一行,我将 TCustomLayer 更改为 TBitmapLayer,以便我可以使用 TBitmapLayer 的 Location 属性来调整图像的大小和缩放。但是当我开始对缩放部分进行编码时,我似乎无法使用 Location 属性使其工作。这是代码。

它没有用。我哪里做错了?或者是否有一个组件确实具有缩放和旋转属性?期待您的帮助。提前致谢。

德尔福新手在这里... :)

0 投票
1 回答
289 浏览

delphi - 缩放 TRotLayer

我正在研究graphics32。我正在使用其示例中的给定组件 TRotLayer。基于示例(Examples/Layers/RotLayer_Ex),创建的RotLayer仅与ImgView一起缩放。如果未分配 ImgView.Bitmap,则 RotLayer 不会缩放。所以我修改了源代码,改变了它的行为。我更改了 TRotLayer.AdjustTransformation 程序。这就是我所做的。

我只是省略了限制并简单地执行了 .Scale 过程。我传递了 Scale.X 和 Scale.Y 的值,它按我的预期工作。图像已调整大小,但现在我的问题是定位。如果我缩放它的高度,图像会向上或向下移动,如果我缩放它的宽度,它会向右或向左移动。我只是想让它调整大小并保持在原来的位置。我注意到函数 .Translate 可能会解决我的问题,但我不知道在参数中传递什么。或者我不知道如何计算要传递的值。

任何人都可以帮助我解决这个问题。谢谢。

0 投票
2 回答
6551 浏览

delphi - TBitmap32.LoadFromStream() 自动识别图像格式

我正在使用 Delphi XE2(更新 3)和 GR32。我无法使用TBitmap32.LoadFromStream()加载图像数据。它引发以下异常:

代码

解决方法

如果我注释LoadFromStream()代码并取消注释前两行,它就可以工作——因此它能够在从文件加载图像时确定图像格式。在此示例中,bs包含有效的 PNG 图像。但是,有时它可能是 GIF、JPG、BMP 或其他图形格式。

我也知道我可以使用一个中间对象(例如 ,TPNGImageTJPEGImage),将使用的图像数据加载LoadFromStream()到中间对象中,然后Assign()将其加载到TBitmap32. 但是,如果TBitmap32可以在没有中间对象的情况下处理任何类型的图像会更好,我认为它可以......

问题

有谁知道如何使用TBitmap32.LoadFromStream()加载图像并让它自动识别图像格式而不将图像保存到 HDD(即使是暂时的),或者使用中间对象?

0 投票
1 回答
3976 浏览

delphi - 在图层中绘制透明椭圆

我的表单上有一个TImgView32(名为 CityMap),并在其上加载了一个图像。现在我创建一个 layer( ) 并使用如下变量TBitmapLayer绘制一个圆:Canvas.EllipseTBitmap32

结果是这样的:

当前结果

如您所见,问题在于烦人的黑色矩形。如何创建这样的结果:

期望的结果

0 投票
1 回答
356 浏览

delphi - 颜色 Alpha 通道不完全透明

BitmapLayer我刚刚用这段代码在 a 中画了一条抗锯齿线:

正如您在下面的结果中看到的,线条透明度像素具有一些绿色值。那是因为$0000FF00(用于Clear())。但是这种颜色的 alpha 通道为零意味着完全透明!

问:我的代码有问题吗?我在某个地方错了吗?

在此处输入图像描述

0 投票
3 回答
4165 浏览

delphi - 如何在 TBitmap 上透明地绘制 TBitmap32?

我正在尝试在正常(TBitmap)图像上绘制包含一些完全透明和部分透明像素的源图像(GR32 TBitmap32),同时保留源图像中的透明度。

我用这个:

但图像不是透明绘制的。


代码:
一切都很基本:我有一个背景位图(Bkg),在应用程序启动时,我在其中加载了一个图像。然后在应用程序中,我从磁盘加载第二张图像(具有透明度的图像)并将其绘制在背景上。