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

  • 相关阅读:
    微信小程序 单选按钮 最佳
    微信小程序 单选按钮的实现
    微信小程序 单选框实现
    Java Code To Create Pyramid and Pattern
    Java language
    npm Err! Unexpected end of JSON input while parsing near
    Node.js Express FrameWork Tutorial
    Higher-Order Function Examples
    Create First HTTP Web Server in Node.js: Complete Tutorial
    Node.js NPM Tutorial: Create, Publish, Extend & Manage
  • 原文地址:https://www.cnblogs.com/insus/p/2950300.html
Copyright © 2011-2022 走看看