gpt4 book ai didi

asp.net - 如何获取参数中指定大小的图像?

转载 作者:行者123 更新时间:2023-12-05 04:16:52 31 4
gpt4 key购买 nike

我想像这样以参数中给定的指定大小显示图像 http://i.stack.imgur.com/zOQ8r.jpg?s=128&g=1 .

假设我的 image1.jpg在这样的图像文件夹中 http://example.com/images/image1.jpg然后如果我指定像?s=200这样的参数然后图像应调整为 200x200<img> 外没有任何其他元素的大小和显示标签。

我不是在询问代码和示例。我只需要一个逻辑或一个想法。 B'Coz,我对此一无所知。即使我不知道我应该在谷歌上搜索什么。我是 Web 应用程序开发的新手。

我想要和http://lorempizza.com/一样的东西由 rlemon 开发

请给出一些想法。任何帮助将不胜感激

感谢和问候

最佳答案

你可以使用下面的函数来调整图片的大小

public Image ImageResize(Image image, int width, int height)
{
Bitmap newImage = new Bitmap(width, height);
using (Graphics gr = Graphics.FromImage(newImage))
{
gr.SmoothingMode = SmoothingMode.AntiAlias;
gr.InterpolationMode = InterpolationMode.HighQualityBicubic;
gr.PixelOffsetMode = PixelOffsetMode.HighQuality;
gr.DrawImage(image, new Rectangle(0, 0, width, height));
}
return newImage as Image;
}

并显示图片

1-使用asp图片标签

<asp:Image id="imageTag" runat="server"/>

2- 通过以下方式将图像保存到文件夹中Image temp=ImageResize(YourImage,200,200);

temp.SaveAs(MapPath("~/Images/image1.png"));

3-将图片url映射到路径

imageTag.ImageUrl=Server.MapPath("~/Images/image1.png");

另一种方法是,如果您坚持使用 <img>,则使用 ashx 处理程序,但最后,asp:Image 将呈现为 <img>

在这里编辑

如何使用ashx调整图片大小

1- 创建一个通用处理程序并将其命名为 ImageHandler

 public class ImageHandler : IHttpHandler
{

public void ProcessRequest(HttpContext context)
{
var directory = @"Location of the images" // example c:\Data;
var path = context.Request.QueryString["path"];
var size = Convert.ToInt32(context.Request.QueryString["size"]);
var image = Image.FromFile(string.Format(@"{0}\{1}.png", directory, path));
image = ImageResize(image, size, size);
context.Response.ContentType = "image/png";
context.Response.BinaryWrite(ImageToByte(image));
}

public Image ImageResize(Image image, int width, int height)
{
Bitmap newImage = new Bitmap(width, height);
using (Graphics gr = Graphics.FromImage(newImage))
{
gr.SmoothingMode = SmoothingMode.AntiAlias;
gr.InterpolationMode = InterpolationMode.HighQualityBicubic;
gr.PixelOffsetMode = PixelOffsetMode.HighQuality;
gr.DrawImage(image, new Rectangle(0, 0, width, height));
}
return newImage as Image;
}

public byte[] ImageToByte(Image img)
{
byte[] byteArray = new byte[0];
using (MemoryStream stream = new MemoryStream())
{
img.Save(stream, System.Drawing.Imaging.ImageFormat.Png);
stream.Close();

byteArray = stream.ToArray();
}
return byteArray;
}

public bool IsReusable
{
get
{
return false;
}
}
}

2-在aspx页面中,使用下面的

<img src="~/ImageHandler.ashx?path=NameOfImage&size=SizeOfImage" runat="server" />

希望对你有帮助

问候

关于asp.net - 如何获取参数中指定大小的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26071576/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com