zoukankan      html  css  js  c++  java
  • 文本创建图片,ASPX向ASCX传值

    网页ASPX有一个TextBox,另一个ASCX有一个ImageButton,用户点一点这个铵钮,把用户在TextBox输入的文字创建为一个图片,ASCX的ImageButton的ImageUrl重新指向这刚产生的图片。

    为了传值,写一个接口,返回aspx的TextBox函数:

    Itransmitable
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI.WebControls;
    
    /// <summary>
    /// Summary description for Itransmitable
    /// </summary>
    namespace Insus.NET
    {
        public interface Itransmitable
        {
            TextBox GetTextBoxControl();
        }
    }


    A.asp.cs,并实现接口。

    A.aspx.cs
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using Insus.NET;
    
    public partial class A : System.Web.UI.Page,Itransmitable 
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            
        }
    
        public TextBox GetTextBoxControl()
        {
            return this.tbHid;
        }
    }


    A.aspx,把用户控件B.ascx接入页面。

    A.aspx
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="A.aspx.cs" Inherits="A" %>
    
    <%@ Register src="B.ascx" tagname="B" tagprefix="uc1" %>
    
    <!DOCTYPE html>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    
    </head>
    <body>
        <form id="form1" runat="server">
            <div>
                <asp:TextBox ID="tbHid" runat="server" />
               
                <uc1:B ID="B1" runat="server" />
               
            </div>
        </form>
    </body>
    </html>


    B.ascx:

    View Code
    <%@ Control Language="C#" AutoEventWireup="true" CodeFile="B.ascx.cs" Inherits="B" %>
     <asp:ImageButton runat="server" ID="imgBmp" OnClick="imgBmp_Click" BorderWidth="1" />


    B.ascx.cs:

    B.ascx.cs
    using System;
    using System.Collections.Generic;
    using System.Drawing;
    using System.Drawing.Drawing2D;
    using System.Drawing.Imaging;
    using System.Drawing.Text;
    using System.IO;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using Insus.NET;
    
    public partial class B : System.Web.UI.UserControl
    {
       
        protected void Page_Load(object sender, EventArgs e)
        {
            this.imgBmp.ImageUrl = GetImagePath("Insus.NET");  //默认值。
        }
        protected void imgBmp_Click(object sender, ImageClickEventArgs e)
        {
           Itransmitable textbox = (Itransmitable)this.Page; //把page转换为接口。
    
           this.imgBmp.ImageUrl = GetImagePath(textbox.GetTextBoxControl().Text.Trim());
        }
    
    
        //创建图片
        private string GetImagePath(string _text)
        {
            Bitmap bitmap = new Bitmap(1, 1);
            Font font = new Font("Arial", 25, FontStyle.Regular, GraphicsUnit.Pixel);
            Graphics graphics = Graphics.FromImage(bitmap);
            int width = (int)graphics.MeasureString(_text, font).Width;
            int height = (int)graphics.MeasureString(_text, font).Height;
            bitmap = new Bitmap(bitmap, new Size(width, height));
            graphics = Graphics.FromImage(bitmap);
            graphics.Clear(Color.White);
            graphics.SmoothingMode = SmoothingMode.AntiAlias;
            graphics.TextRenderingHint = TextRenderingHint.AntiAlias;
            graphics.DrawString(_text, font, new SolidBrush(Color.FromArgb(0, 0, 0)), 0, 0);
            graphics.Flush();
            graphics.Dispose();
            string fileName = Path.GetFileNameWithoutExtension(Path.GetRandomFileName()) + ".jpg";
            bitmap.Save(Server.MapPath("~/ImageLib/") + fileName, ImageFormat.Jpeg);
            return "~/ImageLib/" + fileName;
        }
    }


    运行效果:

     

    Demo code download(.NET 4.5) :
    http://download.cnblogs.com/insus/ASPDOTNET/aspx2ascx.rar

  • 相关阅读:
    Excel 如何复制粘贴一整行
    如何修改文件的扩展名(后缀)
    中文乱码之myEclipse项目导入时中文乱码(待)
    如何在java中导入jar包
    如何在myEclipse中创建配置文件,比如:XXX.properties
    Postman安装教程
    API是什么?——回答:接口。(待)
    找回J2EE 之再学习打卡记录
    让外界可以访问电脑上的网站的几种方式——花生壳,域名,IIS(待)
    18、任务暂停挂起
  • 原文地址:https://www.cnblogs.com/insus/p/2950300.html
Copyright © 2011-2022 走看看