【发布时间】:2017-10-22 23:59:08
【问题描述】:
我需要为我的应用创建裁剪效果。我在 TImage 上有一个 TRectangle,当用户按下保存按钮时,我需要只复制 TRectangle 使用的区域。有什么方法可以只从 Image1.Bitmap 中剪切一个特定区域?我打印了一张图片以更好地说明我需要什么:
【问题讨论】:
-
你最好使用可以控制比例的画布。不要只使用任何随机的图像控件。如果是我,我会为此编写一个自定义控件。但这不会是一件非常微不足道的事情。
-
您使用的
WrapMode是什么?如果它是Tile并且您的选择器覆盖了显示图像的多个图块怎么办? -
裁剪过程如下: 1) 计算图像的缩放比例并将矩形边界转换为图像比例。 2) 创建一个 TBitmap 并将 CopyFromBitmap 与计算出的矩形一起使用。这会将 TImage 位图中的一个部分复制到新位图中。 3)将位图分配给您的 TImage 位图(如果这是您想要的)。
-
你能给我一个关于如何执行第 2 步的代码示例吗?
-
这个概念非常简单:在受控画布上绘制图像(您可以 100% 控制),然后进行简单的数学运算来确定比例。当然有很多资源如何在 Firemonkey 中提取图像的一部分。我用它们编写了我自己的矢量签名控件。对你来说更简单。但请不要指望我们会为您编写。
标签: delphi firemonkey delphi-10.2-tokyo