Как совместить два изображения?
Используя ImageSharp для ядра.Net, как я могу объединить 2 изображения рядом? Например: сделать 2 100x150px стать 1 100x300px (или 200x150px)
1 ответ
Решение
Используя этот код, вы можете нарисовать 2 исходных изображения на новом изображении правильных размеров.
Он берет 2 исходных изображения, изменяет их размеры до требуемых размеров, а затем рисует каждое из них на третьем изображении, готовом для сохранения.
using (Image<Rgba32> img1 = Image.Load("source1.png")) // load up source images
using (Image<Rgba32> img2 = Image.Load("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, 1f, new Point(0, 0)) // draw the first one top left
.DrawImage(img2, 1f, new Point(100, 0)) // 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;