如何合并两个图像?
How to combine two images?
使用 ImageSharp for .Net core,如何并排组合 2 张图像?例如:将 2 100x150px 变为 1 100x300px(或 200x150px)
您可以使用此代码将 2 个源图像绘制到尺寸正确的新图像上。
它获取您的 2 个源图像,将它们的大小调整到所需的确切尺寸,然后将它们中的每一个绘制到准备保存的第三个图像上。
using (Image<Rgba32> img1 = Image.Load<Rgba32>("source1.png")) // load up source images
using (Image<Rgba32> img2 = Image.Load<Rgba32>("source2.png"))
using (Image<Rgba32> outputImage = new Image<Rgba32>(200, 150)) // create output image of the correct dimensions
{
// reduce source images to correct dimensions
// skip if already correct size
// if you need to use source images else where use Clone and take the result instead
img1.Mutate(o => o.Resize(new Size(100, 150)));
img2.Mutate(o => o.Resize(new Size(100, 150)));
// take the 2 source images and draw them onto the image
outputImage.Mutate(o => o
.DrawImage(img1, new Point(0, 0), 1f) // draw the first one top left
.DrawImage(img2, new Point(100, 0), 1f) // draw the second next to it
);
outputImage.Save("ouput.png");
}
此代码假定您在范围内使用了这些用法
using SixLabors.ImageSharp.Processing.Transforms;
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.Processing.Drawing;
using SixLabors.ImageSharp.PixelFormats;
using SixLabors.Primitives;
使用 ImageSharp for .Net core,如何并排组合 2 张图像?例如:将 2 100x150px 变为 1 100x300px(或 200x150px)
您可以使用此代码将 2 个源图像绘制到尺寸正确的新图像上。
它获取您的 2 个源图像,将它们的大小调整到所需的确切尺寸,然后将它们中的每一个绘制到准备保存的第三个图像上。
using (Image<Rgba32> img1 = Image.Load<Rgba32>("source1.png")) // load up source images
using (Image<Rgba32> img2 = Image.Load<Rgba32>("source2.png"))
using (Image<Rgba32> outputImage = new Image<Rgba32>(200, 150)) // create output image of the correct dimensions
{
// reduce source images to correct dimensions
// skip if already correct size
// if you need to use source images else where use Clone and take the result instead
img1.Mutate(o => o.Resize(new Size(100, 150)));
img2.Mutate(o => o.Resize(new Size(100, 150)));
// take the 2 source images and draw them onto the image
outputImage.Mutate(o => o
.DrawImage(img1, new Point(0, 0), 1f) // draw the first one top left
.DrawImage(img2, new Point(100, 0), 1f) // draw the second next to it
);
outputImage.Save("ouput.png");
}
此代码假定您在范围内使用了这些用法
using SixLabors.ImageSharp.Processing.Transforms;
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.Processing.Drawing;
using SixLabors.ImageSharp.PixelFormats;
using SixLabors.Primitives;