我在讨论\论坛/StackOverflow/官方文档中进行了一些搜索,但我找不到太多关于如何实现我正在尝试的信息。大多数官方文档都涵盖了 ImageMagick 的命令行版本。
我将描述我正在尝试做的事情:我加载了一张图像,我想将其粘贴到更大的图像中。例如:我加载的图像宽度为 9920,高度为 7085。我想把它放在一个更大的中间(10594 宽,7387 高)。我已经准备好所有边界计算([较大的宽度 - 原始宽度/ 2],高度也是如此)。
但我不知道如何使用 MagickImage 来做到这一点。这是我得到的最大值:
private void drawInkzone(MagickImage loadedImage, List<string>inkzoneAreaInformation, string filePath)
{
unitConversion converter = new unitConversion();
List<double> inkZoneInfo = inkZoneListFill(inkzoneAreaInformation);
float DPI = getImageDPI(filePath);
double zoneAreaWidth_Pixels = converter.mmToPixel(inkZoneInfo.ElementAt(4), DPI);
double zoneAreaHeight_Pixels = converter.mmToPixel(inkZoneInfo.ElementAt(5), DPI);
using (MagickImage image = new MagickImage(MagickColor.FromRgb(255, 255, 255), Convert.ToInt32(zoneAreaWidth_Pixels), Convert.ToInt32(zoneAreaHeight_Pixels)))
{
//first: defining the larger image, with a white background (must be transparent, but for now its okay)
using (MagickImage original = loadedImage.Clone())
{
//Cloned the original image (already passed as parameter)
}
}
这是我得到的最大值。为了实现这一点,我使用了以下帖子:
而且我没有使用 GDI+,因为我将始终使用更大的 TIFF 文件(大分辨率),并且当 GDI+ 无法处理所有内容(我加载了三个图像)时,它往往会抛出异常(参数无效,内存不足)具有这样的分辨率,并且内存不足)。
任何帮助将不胜感激,谢谢。巴勃罗。