c# – 按钮点击进入无限循环(ASP.Net)
发布时间:2020-12-15 22:46:13 所属栏目:百科 来源:网络整理
导读:我正在从特定路径拍摄图像并在其上应用颜色然后我想保存图像并在按钮点击时显示它.但是点击事件进入无限循环. 它不会导致循环一段时间,但如果你运行多个项目 ?时间和地点调试器然后你会发现它是循环的. 以下是我的代码: aspx代码: %@ Page Language="C#" A
我正在从特定路径拍摄图像并在其上应用颜色然后我想保存图像并在按钮点击时显示它.但是点击事件进入无限循环.
它不会导致循环一段时间,但如果你运行多个项目 以下是我的代码: aspx代码: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Convert.aspx.cs" Inherits="ConvertImage.Convert" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <div> <asp:Button ID="Button1" runat="server" Text="Submit" OnClick="Button1_Click1" /> <asp:Label ID="Label1" runat="server" Text=""></asp:Label> </div> <div> <asp:Image ID="OldImage" ImageUrl="~/Image/Panda.jpg" runat="server" /> <asp:Image ID="NewImage" runat="server" /> </div> </div> </form> </body> </html> c#代码: using System; using System.Collections.Generic; using System.Drawing; using System.Drawing.Imaging; using System.IO; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using static System.Net.Mime.MediaTypeNames; namespace ConvertImage { public partial class Convert : System.Web.UI.Page { protected void Page_Load(object sender,EventArgs e) { } protected void Button1_Click1(object sender,EventArgs e) { CompareImage(); } private void CompareImage() { Bitmap image1; try { image1 = new Bitmap(Server.MapPath(@"~ImagePanda.jpg"),true); OldImage.ImageUrl = "~/Image/Panda.jpg"; int x,y; for (x = 0; x < image1.Width; x++) { for (y = 0; y < image1.Height; y++) { if (y < 150) { Color pixelColor = image1.GetPixel(x,y); Color newColor = Color.FromArgb(pixelColor.R,25,60); image1.SetPixel(x,y,newColor); } else if (y >= 150 && y < 300) { Color pixelColor = image1.GetPixel(x,200,100); image1.SetPixel(x,newColor); } else { Color pixelColor = image1.GetPixel(x,100,210); image1.SetPixel(x,newColor); } } } image1.Save(Server.MapPath(@"~Imagexyz.jpg"),ImageFormat.Jpeg); NewImage.ImageUrl = @"~/Image/xyz.jpg"; Label1.Text = "Pixel format: " + image1.PixelFormat.ToString(); } catch (Exception ex) { Response.Write(ex.Message); } } } } 我帮我错了. 解决方法
尝试调用Debug.Writeline(image1.height)和image1.width.还要添加断点并逐步完成循环.很难说循环无限的地方.对我来说,循环中的一切看起来都不错,它不应该是无限的.
回发Debug.Writeline的结果,以便我们可以通过断点或Debug.WRiteline帮助您或调试过程. 还可以尝试在不同的图像上运行它和/或确认图像的路径 就像我说你的代码很好,这或者是一个路径问题,似乎不是因为你得到了正确的宽度和高度,或者很可能是一个身份验证问题.我用这个图像运行你的代码 我能够将此图像作为输出 确认这是否是正确的输出. 你可以尝试的另一件事是改变 image1.Save(Server.MapPath(@"~Imagexyz.jpg"),ImageFormat.Jpeg); 至 image1.Save(AppDomain.CurrentDomain.BaseDirectory + "Image/xyz.jpg",ImageFormat.Jpeg); 我的最终代码 Default.aspx的 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <div> <asp:Button ID="Button1" runat="server" Text="Submit" OnClick="Button1_Click" /> <asp:Label ID="Label1" runat="server" Text=""></asp:Label> </div> <div> <asp:Image ID="OldImage" ImageUrl="~/Image/Panda.jpg" runat="server" /> <asp:Image ID="NewImage" runat="server" /> </div> </div> </form> </body> </html> Default.aspx.cs using System; using System.Drawing; using System.Drawing.Imaging; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender,EventArgs e) { } protected void Button1_Click(object sender,EventArgs e) { CompareImage(); } private void CompareImage() { Bitmap image1; try { image1 = new Bitmap(Server.MapPath(@"~ImagePanda.jpg"),true); OldImage.ImageUrl = "~/Image/Panda.jpg"; int x,y; for (x = 0; x < image1.Width; x++) { for (y = 0; y < image1.Height; y++) { if (y < 150) { Color pixelColor = image1.GetPixel(x,y); Color newColor = Color.FromArgb(pixelColor.R,60); image1.SetPixel(x,newColor); } else if (y >= 150 && y < 300) { Color pixelColor = image1.GetPixel(x,100); image1.SetPixel(x,newColor); } else { Color pixelColor = image1.GetPixel(x,210); image1.SetPixel(x,newColor); } } } //image1.Save(Server.MapPath(@"~Imagexyz.jpg"),ImageFormat.Jpeg); image1.Save(AppDomain.CurrentDomain.BaseDirectory + "Image/xyz.jpg",ImageFormat.Jpeg); NewImage.ImageUrl = @"~/Image/xyz.jpg"; Label1.Text = "Pixel format: " + image1.PixelFormat.ToString(); } catch (Exception ex) { Response.Write(ex.Message); } } } 项目树 这对我来说就像魅力一样.祝好运. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |