Как я могу расположить несколько прозрачных PNG на JPG, используя c # и asp.net? - PullRequest
0 голосов
/ 02 августа 2010

Я хотел бы написать приложение, которое позволило бы веб-пользователю загружать jpg и размещать прозрачные pngs поверх этого загруженного изображения. Количество слоев, расположение слоев и фактическая информация о файле изображения будут собираться и обрабатываться с использованием JavaScript и CSS.

После того, как у меня есть файлы изображений и координаты x-y-z для прозрачных png, как я могу создать один jpg из этих изображений? У вас, ребята, есть хорошая отправная точка для исследования?

Редактировать

Привет, Первые два ответа, которые я получил, оба, кажется, делают работу. В чем разница между использованием System.Drawing.Graphics и использованием System.Drawing.Image ???

Ответы [ 2 ]

2 голосов
/ 02 августа 2010

Вот код, который я использую (модифицированный, чтобы показать принцип):

private void ProcessPhoto()
        {


            System.Drawing.Image imgThumb = System.Drawing.Image.FromFile("some.jpg");

            // 43w, 35h = offset in frame

            System.Drawing.Image imgFrame = System.Drawing.Image.FromFile("transparent_something.png");

            Bitmap bmImage = new Bitmap(imgThumb);
            bmImage.SetResolution(72, 72);
            Graphics gFrame = Graphics.FromImage(imgFrame);
            gFrame.DrawImage(bmImage, new Point(38, 44)); // offset point of where you want to draw

            gFrame.Dispose();

            SavePhoto(imgFrame, "dest.png");

            imgFrame.Dispose();           
            imgThumb.Dispose();

        }

        private void SavePhoto(System.Drawing.Image img, string fileName)
        {
            string ext = Path.GetExtension(fileName);
            fileName = fileName.Replace(ext, ".png");            

            img.Save(fileName, GetImageEncoder("PNG"), null);
        }

Edit: Прочитать все о Графический класс здесь

2 голосов
/ 02 августа 2010

Здесь - это одна статья, в которой автор добавляет изображение водяного знака в существующее изображение.

Суть операции такова:

 System.Drawing.Graphics myGraphic = null;
 Image imgB;
 imgB = Image.FromFile(ImageBack);
 Image imgF;
 imgF = Image.FromFile(ImageFore);
 Image m;
 m = Image.FromFile(ImageBack);
 ...
 myGraphic = System.Drawing.Graphics.FromImage(m);
 myGraphic.DrawImageUnscaled(imgB,0,0);
 myGraphic.DrawImageUnscaled(imgF,0,0);
 myGraphic.Save();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...