2016-12-15 3 views
0

В моем веб-приложении у меня есть 3 изображения, которые мне нужно объединить в одно изображение (вертикальное выравнивание). У меня есть код для двух изображений в одно изображение, но они объединены бок о бок. Мне нужно вверх и вниз, а также как добавить третье изображение.Объединение трех изображений в одно изображение в asp.net

код я нашел в Интернете:

Я попытался код для 2-х изображений:

.aspx:

<div> 
    <asp:Button ID="Button1" runat="server" Text="Merge" onclick="Button1_Click"/>  
    <asp:Image ID="Image1" runat="server" ImageUrl="~/Images/Flower2.jpg" Height="129px" Width="210px"/><br /> 
    <asp:Image ID="image2" runat="server" ImageUrl="~/Images/Flower4.jpg" Height="129px" Width="210px"/><br />  
    <asp:Image ID="MergedCombinedImage" runat="server" /> 
</div> 

.cs

protected void Button1_Click(object sender, EventArgs e) 
{ 
    string img1path = MapPath("~/Images/Flower2.jpg"); 
    string img2path = MapPath("~/Images/Flower4.jpg");   

    // Load two Images to be combined into Image Objects 

    System.Drawing.Image img1= System.Drawing.Image.FromFile(img1path); 
    System.Drawing.Image img2= System.Drawing.Image.FromFile(img2path); 

    // Create a Resultant Image that’ll hold the above two Images 
    //Here i am creating the final image with width as combined width of img1 and img2 and height as largest height among img1 and img2 

    using (Bitmap FinalBitmap = new Bitmap(img1.Width + img2.Width, img2.Height > img1.Height ? img2.Height : img1.Height)) //This condition how can i add img3 
    { 
     using (Graphics FinalImage = Graphics.FromImage(FinalBitmap)) 
     { 
      // Draw the first image staring at point (0,0) with actual width and height of the image, in final image 
      FinalImage.DrawImage(img1, new Rectangle(0, 0, img1.Width, img1.Height));     
      // and Draw the second image staring at point where first image ends in the final image and save changes 
      FinalImage.DrawImage(img2, img1.Width, 0); 
      FinalImage.Save(); 
      // Write the bitmap to an image file and you’re done 
      FinalBitmap.Save(MapPath("~/ResultImages/Outputimg.jpg")); 
      MergedCombinedImage.ImageUrl = "~/ResultImages/Outputimg.jpg"; 
     } 
    } 
} 

ответ

0

Ну, код У вас есть Объединение этого бок о бок. Собственно, все это так. Думаю, вы сами не писали, а вместо этого просто схватили его откуда-то. Все, что вам действительно нужно сделать, это небольшой своп в логике, и вы сделали:

  • Нового растровым инстанцированием является суммой двух ширин и максимальной высоты из двух изображений выбрано. Вам нужно поменять это как сумму максимальных высот и максимальной ширины.
  • Затем вы рисуете первое изображение до его полного размера. Это можно оставить нетронутым.
  • Затем вы начинаете рисовать второе изображение на X, которое соответствует тому, где заканчивается первое изображение. Вместо этого вы должны установить начальную координату X для второго изображения в 0 и координату Y на высоту первого изображения.
+0

Здравствуйте, Boris Makogonyuk, я следил за вашими инструкциями, и я сделал изменения в своем коде, но я получаю изображение результата в вертикальном направлении, но второе изображение не отображается правильно. Я прикреплял изображение к своему коду. I обновлялся с таким именем изображения, как 'Image Not form well 'мой код, пожалуйста, смотрите один раз –

+0

Проверьте строку, в которой вы создаете окончательное изображение, а также линию, в которой вы рисуете второе изображение. Где-то вы не обеспечиваете правильную высоту. Чтобы быть уверенным, добавьте изменения, в которые вы оказались, как второй блок кода, таким образом, нам не нужно гадать. –

+0

Я сделал изменения, о чем вы сказали, я обновил свой код, вы можете увидеть мой обновленный код и, пожалуйста, скажите мне, где я ошибся –

Смежные вопросы