CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
英特尔®游戏设计大赛100美元现金周周送 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

怎样在imagebutton中动态显示图像

楼主shannon977(任平生)2003-08-02 20:33:14 在 .NET技术 / ASP.NET 提问

一般imagebutton中显示的图像都是由ImageURL静态指定的。  
  但我现在的问题是想根据imagebutton的鼠标事件进行图像的放大缩小。  
  图信息并不是一个.jpg或.gif文件,甚至不是一副图像,而是自定义的一些图形数据,比如组成这副图的有几个点,几条线,几个圆等等。如果在imagebutton里点击鼠标提交后,我要在事件处理函数中根据图形信息动态的将图画一遍,再传回客户端显示。  
  imagebutton里好像并没有诸如画点,画线,画面的成员函数。  
  这种功能,我看到已经有人做出来了,但是我一点概念也没有,所以想问问大家有什么好办法。 问题点数:80、回复次数:6Top

1 楼buaawjh(猪猪爱咬咬)回复于 2003-08-02 20:52:09 得分 0

1--根据你的具体需求通过GDI+的方式动态生成一张图(.bmp.jpg.gif)  
  2--邦定到这张图即可Top

2 楼panyee(快乐王子)回复于 2003-08-02 21:04:52 得分 0

imagebutton生成html后就是这样子:  
   
  <input   type="image"   name="ImageButton1"   id="ImageButton1"   src="/WebApplication1/receivefiles.GIF"   alt="ggggg"   border="0"   style="Z-INDEX:   110;   LEFT:   413px;   POSITION:   absolute;   TOP:   367px"   />  
   
  那要实现它的鼠标事件应该就好办了  
  通过服务端给它指定相应的事件,   用style改变它的大小,   javascript改变图象的url,  
   
  ImageButton1.Attributes.Add("onmouseover",   "this.style.width=50");Top

3 楼shannon977(任平生)回复于 2003-08-02 21:15:00 得分 0

怎么生成,怎么绑定(是不是ImageURL再赋一次值)!  
  这是个办法,但是随之而来的问题是,假如有多个用户访问,多次作放大和缩小操作,就会在服务器端生成许多临时图像,不好管理。  
  我看了一下那个已经实现该功能的.aspx文件,其中一个showmap.aspx用:  
  <asp:imagebutton   id="MapImg"   runat="server"   BackColor="White"   Width="704px"   Height="593px"   ToolTip="Map"   ImageUrl="Map.aspx"   BorderWidth="1px"></asp:imagebutton>  
  这个ImageButton来显示图像,但是注意它的ImageUrl的值,是Map.aspx,而不是.jpg或.gif。  
   
  Map.aspx是这样的:  
  <%@   Page   language="c#"   Codebehind="Map.aspx.cs"   AutoEventWireup="false"   Inherits="WebGIS.WebForm1"   %>  
  <!DOCTYPE   HTML   PUBLIC   "-//W3C//DTD   HTML   4.0   Transitional//EN"   >  
  <HTML>  
  <HEAD>  
  <title>Map</title>  
  <meta   content="Microsoft   Visual   Studio   7.0"   name="GENERATOR">  
  <meta   content="C#"   name="CODE_LANGUAGE">  
  <meta   content="JavaScript"   name="vs_defaultClientScript">  
  <meta   content="http://schemas.microsoft.com/intellisense/ie5"   name="vs_targetSchema">  
  </HEAD>  
  <body   MS_POSITIONING="GridLayout">  
  <form   id="Map"   method="post"   runat="server">  
  &nbsp;  
  <P>&nbsp;</P>  
  </form>  
  </body>  
  </HTML>  
  其.cs文件我看不见。实现者自己说是在imagebutton(showmkap.aspx中那个)每次鼠标点击事件里,动态的重画图像,似乎动态的重画图像是放在Map.aspx中的,这样每次鼠标点击,imagebutton根据ImageURL刷新,重绘的内容才会不一样!  
  但是我不知道图像是如何画到Map.aspx里去的,还有imagebutton能显示一个.aspx文件吗?Top

4 楼panyee(快乐王子)回复于 2003-08-02 21:25:19 得分 75

那个.cs文件实现的应该是动态构造一张图出来,   我以前写了个跟据url参数动态生成一张图片的aspx文件,   可以说有类似的地方  
  但如果aspx文件没有参数,   那如何让它实现不同的状态生成不同的图片呢?    
  第一,   可以在你包含图片的aspx页面给Session参数是一个办法  
  第二,   图片生成,   即访问你的Map.aspx文件是在主页面生成之后才进行访问的(ie在下载页面时,遇到需要显示图片,   才去请求下载相应的图片,   而那时,父页面已经生成并被客户端下载)  
  第三,   参数要有个标准  
   
  <%@Page   language="c#"   contenttype="image/jpeg"   %>  
  <%@import   namespace="System.Drawing"%>  
  <%@import   namespace="System.Drawing.Imaging"%>  
  <%@import   namespace="System.Drawing.Drawing2D"%>  
  <%  
  String   str   =   Request.Params["str"];  
  if(str   ==   ""||str   ==   null)  
  str   =   "请输入参数str";  
  Response.Clear();  
  Bitmap   img   =   new   Bitmap(240,   30,   PixelFormat.Format24bppRgb);  
  Graphics   g   =   Graphics.FromImage(img);  
  g.Clear(Color.Green);  
  g.SmoothingMode   =   SmoothingMode.AntiAlias;  
  g.DrawString(str,   new   Font("黑体",   16,   FontStyle.Bold),   new   SolidBrush(Color.White),   new   Point(1,1));  
  g.FillRectangle(new   LinearGradientBrush(new   Point(0,0),   new   Point(240,   30),   Color.FromArgb(0,0,0,0),   Color.FromArgb(255,255,255,255)),   0,0,240,30);  
  img.Save(Response.OutputStream,   ImageFormat.Jpeg);  
  g.Dispose();  
  img.Dispose();  
  Response.End();  
  %>Top

5 楼shannon977(任平生)回复于 2003-08-02 21:50:11 得分 0

啊,哈哈,有点意思了,居然用Page.Response传,我怎么没想到呢,真是太笨啦!  
  下面讨论参数的问题,我想无非是要放大还是缩小,还有就是鼠标点击处的窗口坐标,由点击处的窗口坐标换算到实际图像坐标中心,这个可以在imagebutton的鼠标事件处理函数中完成,显示的大小就是imagebutton的尺寸。问题是在imagebutton的鼠标事件处理函数中算得的这些参数怎样才能让Map.aspx得到,难道非得用session吗?还有没有其他好的办法!Top

6 楼panyee(快乐王子)回复于 2003-08-04 17:52:23 得分 5

页面点击鼠标,   可用用js事件取得鼠标位置,   拖动也是这样,   然后动态改变  
  图片的url,   通过url把参数传给Map.aspx  
   
  具体网上的例子我没有看过,   但讨论的这种方式肯定是可以实现的Top

相关问题

  • 显示动态图像
  • C#中怎么样动态显示图像?
  • 图像显示???
  • 如何在VC的picture控件中动态地显示一个位图图像
  • 如何将一个ocx控件(视频捕捉卡带)显示的动态图像显示再timage中?
  • directx 图像显示
  • Java显示图像
  • 如何显示jpg图像
  • ★BMP图像显示问题★
  • 怎样显示bmp图像

关键词

得分解答快速导航

  • 帖主:shannon977
  • panyee
  • panyee

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo