resizer net libreria c# .net image-manipulation

libreria - Combine dos imágenes para crear una sola imagen en C#.Net



opencv vb net (5)

Descargo de responsabilidad: trabajo en Atalasoft

Nuestro DotImage Photo SDK (que es gratuito) puede hacer esto.

Para abrir una imagen

AtalaImage botImage = new AtalaImage("bottomImage.png"); AtalaImage topImage = new AtalaImage("topImage.png");

Para superponer uno encima del otro

Point pos = new Point(0,0); // or whatever you need OverlayCommand cmd = new OverlayCommand(topImage, pos); ImageResults res = cmd.Apply(botImage);

Si necesita que la imagen resultante tenga un tamaño diferente, mire el CanvasCommand . También puede crear una Imagen de Atala del tamaño que necesita y luego superponer cada imagen en ella.

Ahorrar

botImage.Save("newImage.png", new PngEncoder(), null);

Tengo un requisito en el que necesito combinar dos imágenes png / jpeg diferentes que resulten en una sola imagen usando C # .Net. Habrá una ubicación particular definida en la imagen de origen en la que necesito insertar otra imagen. ¿Alguien puede sugerir algunos enlaces?


Después de todo esto, encontré un nuevo método más fácil, intente esto ...

Puede unir múltiples fotos juntas:

public static System.Drawing.Bitmap CombineBitmap(string[] files) { //read all images into memory List<System.Drawing.Bitmap> images = new List<System.Drawing.Bitmap>(); System.Drawing.Bitmap finalImage = null; try { int width = 0; int height = 0; foreach (string image in files) { //create a Bitmap from the file and add it to the list System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(image); //update the size of the final bitmap width += bitmap.Width; height = bitmap.Height > height ? bitmap.Height : height; images.Add(bitmap); } //create a bitmap to hold the combined image finalImage = new System.Drawing.Bitmap(width, height); //get a graphics object from the image so we can draw on it using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(finalImage)) { //set background color g.Clear(System.Drawing.Color.Black); //go through each image and draw it on the final image int offset = 0; foreach (System.Drawing.Bitmap image in images) { g.DrawImage(image, new System.Drawing.Rectangle(offset, 0, image.Width, image.Height)); offset += image.Width; } } return finalImage; } catch (Exception) { if (finalImage != null) finalImage.Dispose(); //throw ex; throw; } finally { //clean up memory foreach (System.Drawing.Bitmap image in images) { image.Dispose(); } } }


Este método combina dos imágenes, una en la parte superior de la otra, puede modificar el código para satisfacer sus necesidades:

public static Bitmap MergeTwoImages(Image firstImage, Image secondImage) { if (firstImage == null) { throw new ArgumentNullException("firstImage"); } if (secondImage == null) { throw new ArgumentNullException("secondImage"); } int outputImageWidth = firstImage.Width > secondImage.Width ? firstImage.Width : secondImage.Width; int outputImageHeight = firstImage.Height + secondImage.Height + 1; Bitmap outputImage = new Bitmap(outputImageWidth, outputImageHeight, System.Drawing.Imaging.PixelFormat.Format32bppArgb); using (Graphics graphics = Graphics.FromImage(outputImage)) { graphics.DrawImage(firstImage, new Rectangle(new Point(), firstImage.Size), new Rectangle(new Point(), firstImage.Size), GraphicsUnit.Pixel); graphics.DrawImage(secondImage, new Rectangle(new Point(0, firstImage.Height + 1), secondImage.Size), new Rectangle(new Point(), secondImage.Size), GraphicsUnit.Pixel); } return outputImage; }


Tengo una API para eso en http://bookingbillboard.com/API . Este api combinará 2 imágenes. 1 imagen es su imagen / diseño / póster, y otras imágenes es foto de cartelera. Al usar API, puedes ver cómo se ve tu diseño / imágenes / póster en la foto de la cartelera


String jpg1 = @"c:/images.jpeg"; String jpg2 = @"c:/images2.jpeg"; String jpg3 = @"c:/image3.jpg"; Image img1 = Image.FromFile(jpg1); Image img2 = Image.FromFile(jpg2); int width = img1.Width + img2.Width; int height = Math.Max(img1.Height, img2.Height); Bitmap img3 = new Bitmap(width, height); Graphics g = Graphics.FromImage(img3); g.Clear(Color.Black); g.DrawImage(img1, new Point(0, 0)); g.DrawImage(img2, new Point(img1.Width, 0)); g.Dispose(); img1.Dispose(); img2.Dispose(); img3.Save(jpg3, System.Drawing.Imaging.ImageFormat.Jpeg); img3.Dispose();