为了账号安全,请及时绑定邮箱和手机立即绑定

文本创建图片,ASPX向ASCX传值

标签:
JavaScript

网页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 class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="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

 

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消