تولید و نمایش تصویر کوچک به صورت پویا با تغییر اندازه تصویر در ASP.Net
با سلام در این مقاله توضیح می دهیم که چگونه به طور پویا اندازه تصویرزا تغییرداده و تصویر کوچک ایجاد کنید . همچنین آن را بر روی صفحه وب ASP.Net نمایش دهیم .
کد HTML
در شکل زیر می توانید ببینید که 2 کنترل تصویر ASP.Net داریم که یکی از آن تصویر اصلی را نمایش می دهد و دیگران تصویر کوچک شده را نشان می دهد. همچنین دکمه کنترل ASP.Net وجود دارد که تصویر ریز را تولید می کند.
<form id="form1" runat="server">
<asp:Image ID="Image1" runat="server" ImageUrl = "~/Jellyfish.jpg" Height = "400px" Width = "400px"/>
<br />
<asp:Button ID="btnGenerate" OnClick = "GenerateThumbnail" runat="server" Text="Generate Thumbnail" />
<hr />
<asp:Image ID="Image2" runat="server" Visible = "false"/>
</form>
فضاهای نام
C #
using System.IO;
using System.Drawing;
using System.Drawing.Imaging;
VB.Net
Imports System.IO
Imports System.Drawing
Imports System.Drawing.Imaging
تغییر اندازه تصویر و ایجاد تصویر کوچک
در کد زیر به صورت پویا تصویر را تغییر می دهد و تصویر کوچک را ایجاد می کند و در کنترل تصویر نمایش داده می شود .
C #
protected void GenerateThumbnail(object sender, EventArgs e)
{
string path = Server.MapPath("~/Jellyfish.jpg");
System.Drawing.Image image = System.Drawing.Image.FromFile(path);
using (System.Drawing.Image thumbnail = image.GetThumbnailImage(100, 100, new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback), IntPtr.Zero))
{
using (MemoryStream memoryStream = new MemoryStream())
{
thumbnail.Save(memoryStream, ImageFormat.Png);
Byte[] bytes = new Byte[memoryStream.Length];
memoryStream.Position = 0;
memoryStream.Read(bytes, 0, (int)bytes.Length);
string base64String = Convert.ToBase64String(bytes, 0, bytes.Length);
Image2.ImageUrl = "data:image/png;base64," + base64String;
Image2.Visible = true;
}
}
}
public bool ThumbnailCallback()
{
return false;
}
VB.Net
Protected Sub GenerateThumbnail(sender As Object, e As EventArgs)
Dim path As String = Server.MapPath("~/Jellyfish.jpg")
Dim image As System.Drawing.Image = System.Drawing.Image.FromFile(path)
Using thumbnail As System.Drawing.Image = image.GetThumbnailImage(100, 100, New System.Drawing.Image.GetThumbnailImageAbort(AddressOf ThumbnailCallback), IntPtr.Zero)
Using memoryStream As New MemoryStream()
thumbnail.Save(memoryStream, ImageFormat.Png)
Dim bytes As [Byte]() = New [Byte](memoryStream.Length - 1) {}
memoryStream.Position = 0
memoryStream.Read(bytes, 0, CInt(bytes.Length))
Dim base64String As String = Convert.ToBase64String(bytes, 0, bytes.Length)
Image2.ImageUrl = "data:image/png;base64," & base64String
Image2.Visible = True
End Using
End Using
End Sub
Public Function ThumbnailCallback() As Boolean
Return False
End Function