0

我只是在使用 c# 在 asp.net 页面上使用 GDI 完成图像创建教程

我的代码在下面

html页面代码

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Image1.aspx.cs" Inherits="GDI_1.Image1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:Image runat="server" ID="img" ImageUrl="Image1.aspx" />
    </div>
    </form>
</body>
</html>

asp.net page behind code

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;


namespace GDI_1
{
    public partial class Image1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Bitmap image = new Bitmap(300, 50);
            Graphics g = Graphics.FromImage(image);
            g.FillRectangle(Brushes.Red, 1, 1, 298, 48);
            Font font = new Font("Impact", 20, FontStyle.Regular);
            g.DrawString("test text", font, Brushes.Yellow, 10, 5);
            image.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Gif);
            g.Dispose();
            image.Dispose();
        }
    }
}

我的问题是当我编译它并查看它显示的页面时

GIF89a,2�3f���++3+f+�+�+�UU3UfU�U�U���3�f����������3�f����������3� fՙ������3�f������3333f3�3�3�3+3+33+f3+�3+�3+�3U3U33Uf3U�3U�3U�3�3�33�f3� ��3��3��3��3��33�f3��3��3��3�3�33�f3�3��3��3�3�33�f3��3��3��ff3fff ��f�f+f+3f+ff+�f+�f+�fUfU3fUffU�fU�f�f�3f�ff��f��f��f�3f�ff��f�� f��f�f�3f�ff�f��f��f�f�3f�ff��f��f����3�f���̙��+�+3�+f�+ ��+̙

以及所有在 html 标记之前

谢谢

4

1 回答 1

2

如果您只是想直接在页面中运行它,那么这就是您将得到的。

要正确显示,您需要将其设置为图像的来源,即

<asp:Image runat="server" ID="img" ImageUrl="ImageBuilder.aspx" />

其中 ImageBuilder.aspx 是包含您的代码的页面。

编辑

您需要做的是有 2 页。

Image1.aspx 包含您当前拥有的图像控件 - 将图像源更改为 Image2.aspx。

创建一个名为 Image2.aspx 的新页面,并从 aspx 中删除除 <%@ Page 行之外的所有内容。现在从 Image1 Page_Load 中删除代码并将其粘贴到 Image2 Page_Load。

重建并重试。

于 2012-04-26T13:05:34.123 回答