文本创建图片,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 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦