- 浏览: 1061543 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (399)
- C++ (39)
- Java (74)
- Java界面开发学习笔记 (4)
- Java用户的c++之旅 (0)
- 自言自语 (12)
- DSP (1)
- MCU (0)
- CG (0)
- Jabber (0)
- Gloox (0)
- Linux (11)
- Windows (19)
- Networks (4)
- Jobs (0)
- PHP (1)
- JSP (2)
- 生活 (35)
- C (2)
- Qt4 (2)
- C# (50)
- WPF (5)
- ASP (2)
- FLEX (47)
- SQL (20)
- JavaScript (12)
- SharePoint (6)
- GWT (1)
- Dojo (9)
- HTML (11)
- Others (7)
- 如何安装配置系列 (7)
- UML (2)
- Android (3)
- alibaba (1)
最新评论
-
zxjlwt:
学习了http://surenpi.com
Firefox插件开发: Hello World! -
ylldzz:
楼主知道MVEL怎么调试么
MVEL简介及快速使用 -
blueman2012:
您好,可否提供源码下载,我把您的代码贴过来后,好多报错的,谢谢 ...
Log4J日志解析 -
svygh123:
你的游标都没有关闭呢!
MYSQL游标嵌套循环示例 -
dizh:
写的很好啊
MVEL简介及快速使用
今天觉得首页出来的图片太慢了,所以着手改图片大小的问题
查看了一下原因,问题出在产品的缩略图上,以前是直接用<img src=XXX.jpg width=190 height=140>这样缩放的,其实它还是把原图下载到了本地,原图有多少大就下载多少大.而主页要显示4个图片,每个原图都有600K就要2.4M,是够大的了.
于是考虑怎么样显示缩略图.
起先开始想把上传的时候就生成缩略图,但是,现在是asp,有难度的,网上找了好久没有攻略,都说要组件才能做到,而我的服务器没有组件.这条路不通.
然后考虑是否能上传两次,一次原图,一次在本地生成缩略图再上传.想用Flex,上传原图的代码是找到了,也很简单.可是本地弄个缩略再上传,我这个初学者就不会了,似乎要用到ImageData,再Matrix什么的,一下子研究不出来.
最后没办法了.上服务器研究一下,我记得是可以用.net 1.1的,下载了一个asp.net探针,果然服务器用的是windows2003, .net 1.1,那就好办了,做一个server端的缩放就完工了.
最后showimage.aspx代码如下:
中间过程中,用到的Flex文件上传代码:
其中,FileService.asp使用了无组件上传技术,其实也可以用FileService.aspx来代替,只要一般的网页上的file能上传就可以.
原文:http://www.cnblogs.com/huqingyu/archive/2009/05/27/1490516.html
查看了一下原因,问题出在产品的缩略图上,以前是直接用<img src=XXX.jpg width=190 height=140>这样缩放的,其实它还是把原图下载到了本地,原图有多少大就下载多少大.而主页要显示4个图片,每个原图都有600K就要2.4M,是够大的了.
于是考虑怎么样显示缩略图.
起先开始想把上传的时候就生成缩略图,但是,现在是asp,有难度的,网上找了好久没有攻略,都说要组件才能做到,而我的服务器没有组件.这条路不通.
然后考虑是否能上传两次,一次原图,一次在本地生成缩略图再上传.想用Flex,上传原图的代码是找到了,也很简单.可是本地弄个缩略再上传,我这个初学者就不会了,似乎要用到ImageData,再Matrix什么的,一下子研究不出来.
最后没办法了.上服务器研究一下,我记得是可以用.net 1.1的,下载了一个asp.net探针,果然服务器用的是windows2003, .net 1.1,那就好办了,做一个server端的缩放就完工了.
最后showimage.aspx代码如下:
<% try { string input_ImgUrl = "../pic/" + Request.QueryString["name"]; // ===通过连接创建Image对象=== System.Drawing.Image oldimage = System.Drawing.Image.FromFile(Server.MapPath(input_ImgUrl)); int int_Width = oldimage.Width; int int_Height = oldimage.Height; // ===上传标准图大小=== int int_Standard_Width = Convert.ToInt32(Request.QueryString["width"]); int int_Standard_Height = Convert.ToInt32(Request.QueryString["height"]); int Reduce_Width = 0; // 缩小的宽度 int Reduce_Height = 0; // 缩小的高度 int level = 100; //缩略图的质量 1-100的范围 // ===获得缩小,裁剪大小=== double scaleHeight = ((double)int_Standard_Height / (double)int_Height); double scaleWidth = ((double)int_Standard_Width / (double)int_Width); if (scaleHeight < scaleWidth) { Reduce_Width = (int)(int_Width * scaleHeight); Reduce_Height = int_Standard_Height; } else if (scaleHeight > scaleWidth) { Reduce_Width = int_Standard_Width; Reduce_Height = (int)(int_Height * scaleWidth); } else { Reduce_Width = int_Standard_Width; Reduce_Height = int_Standard_Height; } // ===缩小图片=== System.Drawing.Image thumbnailImage = oldimage.GetThumbnailImage(Reduce_Width, Reduce_Height, null, IntPtr.Zero); System.Drawing.Bitmap bm = new System.Drawing.Bitmap(thumbnailImage); // ===处理JPG质量的函数=== System.Drawing.Imaging.ImageCodecInfo[] codecs = System.Drawing.Imaging.ImageCodecInfo.GetImageEncoders(); System.Drawing.Imaging.ImageCodecInfo ici = null; foreach (System.Drawing.Imaging.ImageCodecInfo codec in codecs) { if (codec.MimeType == "image/jpeg") ici = codec; } System.Drawing.Imaging.EncoderParameters ep = new System.Drawing.Imaging.EncoderParameters(); ep.Param[0] = new System.Drawing.Imaging.EncoderParameter(System.Drawing.Imaging.Encoder.Quality, (long)level); System.IO.MemoryStream ms = new System.IO.MemoryStream(); bm.Save(ms, ici, ep); Response.ClearContent(); Response.BinaryWrite(ms.ToArray()); Response.ContentType = "image/jpeg";//指定输出格式为图形 Response.Flush(); } catch (Exception e) { Response.Write(e.ToString()); } %>
中间过程中,用到的Flex文件上传代码:
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" verticalAlign="middle" horizontalAlign="center"> <mx:Style> global { fontSize : 14; } </mx:Style> <mx:Script> <![CDATA[ import mx.effects.Zoom; import mx.controls.Image; // 先搞 1 个 FileReference private var file:FileReference = new FileReference(); // 上传状态指示, 和下面的文本框绑定 [Bindable] private var stateText:String = "请选择一个文件上传"; // createChildren 比 creationComplete 事件更早发生, 省的注册事件侦听, 直接在这里写了 protected override function createChildren():void { super.createChildren(); file.addEventListener(Event.SELECT, file_select); file.addEventListener(Event.COMPLETE, file_complete); file.addEventListener(ProgressEvent.PROGRESS, file_progress); } // 选择 1 个文件的事件 private function file_select (e:Event):void { stateText = "选择了文件 " + file.name; } // 上传完毕后的事件 private function file_complete (e:Event):void { stateText = "上传完毕"; } private function file_progress (e:ProgressEvent):void { stateText = "已上传 " + Math.round(100 * e.bytesLoaded / e.bytesTotal) + "%"; } // 先判断一下文件大小, 再上传, FileService.aspx 就是上传地址 private function upload ():void { if (file.size > 0) { stateText = "正在上传 " + file.name; var request:URLRequest = new URLRequest("FileService.asp"); file.upload(request); } } ]]> </mx:Script> <mx:Panel width="250" height="112" layout="vertical" title="上传示例" verticalAlign="middle" horizontalAlign="center" > <mx:HBox> <mx:TextInput text="{stateText}" width="160" editable="false"/> <mx:Button label="浏览" click="file.browse();"/> </mx:HBox> <mx:HBox> <mx:Button label="上传" click="upload();"/> </mx:HBox> </mx:Panel> </mx:Application>
其中,FileService.asp使用了无组件上传技术,其实也可以用FileService.aspx来代替,只要一般的网页上的file能上传就可以.
原文:http://www.cnblogs.com/huqingyu/archive/2009/05/27/1490516.html
发表评论
-
策略模式
2010-10-08 16:34 1141一、概念 策略模式(Strategy):它定义了一系 ... -
C#获取返回错误码
2010-05-21 17:59 1783[DllImport("TestWin32Dl ... -
VS.NET 开发Windows服务的步骤
2010-05-20 14:25 1572在很多应用中需要做windows服务来在一些后台操作,比如监视 ... -
c# 允许服务与桌面交互
2010-05-20 14:20 2666我们写一个服务,有时候要让服务启动某个应用程序,就要修 ... -
C#单例模式的三种写法
2010-05-19 15:58 48528第一种最简单,但没有考虑线程安全,在多线程时可能会出问题, ... -
C#中获取我的文档系统文件夹路径
2010-05-17 15:29 2243本技巧使用GetFolderPath方法来获取指向由指定枚 ... -
C#自定义事件的步骤介绍
2010-05-13 17:54 3254通常C#自定义事件有下面的几个步骤: ... -
使用反射机制遍历对象中的属性名及属性值
2010-05-03 16:20 2802首先描述一种情景,当给你一个VO类(这个类是映射到数据库的表 ... -
C#的逆向工程-IL指令集
2010-04-30 10:28 1595一些 IL 语言解释: ... -
使用SqlHelper时“阅读器关闭时read的尝试无效”的解决方法
2010-04-20 14:54 1789原SqlHelper类中ExecuteReader方法体 ... -
C# 删除文件夹
2009-12-31 11:28 2502/// <summary> ... -
System.Windows.Forms.Timer和System.Timers.Timer的区别 [转]
2009-12-16 23:44 5161.NET Framework里面提供了三种Timer: ... -
关于var1=var2=something赋值语句的思考
2009-11-18 16:16 1199刚才在阅读《c#本质论》一书时,开头有提到var1=var2= ... -
C#使textbox滚动到最新一行
2009-11-16 12:33 2454方法1: textBox.Text += " ... -
Invoke()/BeginInvoke()区别
2009-11-15 17:43 7172查看MSDN如下: Control..::.Inv ... -
Invoke 和 BeginInvoke 的真正涵义
2009-11-15 17:37 1292BeginInvoke 方法真的是新开一个线程进行异步调用 ... -
编写安全的多线程C#程序
2009-11-15 01:24 1878与多线程相关的两个常见的需要解决的问题是:临界资源保护和线 ... -
线程,同步与锁——Lock你到底锁住了谁
2009-11-15 01:18 1568线程在多核时代的优势月来越明显,多线程编程的学习也提上议事日程 ... -
关于lock(this)的说明及用法
2009-11-15 01:16 5287一. 为什么要lock,lock了 ... -
远程dll注入 C#
2009-11-14 16:43 3096using System; using System. ...
相关推荐
javascript+asp图片缩放剪切(也可以用其他编程如asp,php,jsp),最好的用处是上传图片可以用到。
C#编程经验技巧宝典源代码,目录如下: 第1章 开发环境 1 <br>1.1 Visual Studio开发环境安装与配置 2 <br>0001 安装Visual Studio 2005开发环境须知 2 <br>0002 配置合适的Visual Studio 2005...
完美的ASP编程的学校网站源码,后台功能非常强大,并参考目前众多流行的国内国外学校网站模板重新做了美化,非常漂亮的学校网站模板,适用于各学校网站建设的网站源码,学校网站管理系统,学校事业单位网站管理系统,Asp+...
各种语言支持 服务器端支持Windows及Linux的服务器,支持各种编程语言,例如asp,asp.net,php,java,c#,vb,vb.net,,delphi,c++,python,ruby等 ;国际权威认证 软件经过国际权威机构安全数字签名认证,通过多种环境及...
这个专业的 .NET Excel 类库嵌入了很多灵活显示工作表的选项,包括分页符,缩放设置,冻结窗口,页眉/页脚,打印 Excel 文件,打印页面尺寸和打印区域等。 5.在运行时轻松操作单元格和 Excel 计算引擎。开发人员可以...
完美的ASP编程的学校网站源码,后台功能非常强大,并参考目前众多流行的国内国外学校网站模板重新做了美化,非常漂亮的学校网站模板,适用于各学校网站建设的网站源码,学校网站管理系统,学校事业单位网站管理系统,Asp+...
1、设计面板具有缩放设计功能。 2、将关联属性归类为组,方便在设计时集中设置与查看。 3、对象浏览窗口与属性窗口可以隐藏,方便在设计很宽的报表时增大设计面板的区域。 4、设计面板大小跟随明细网格总列宽来改变...
完美的ASP编程的学校网站源码,后台功能非常强大,并参考目前众多流行的国内国外学校网站模板重新做了美化,非常漂亮的学校网站模板,适用于各学校网站建设的网站源码,学校网站管理系统,学校事业单位网站管理系统,Asp+...
完美的ASP编程的学校网站源码,后台功能非常强大,并参考目前众多流行的国内国外学校网站模板重新做了美化,非常漂亮的学校网站模板,适用于各学校网站建设的网站源码,学校网站管理系统,学校事业单位网站管理系统,Asp...
完美的ASP编程的学校网站源码,后台功能非常强大,并参考目前众多流行的国内国外学校网站模板重新做了美化,非常漂亮的学校网站模板,适用于各学校网站建设的网站源码,学校网站管理系统,学校事业单位网站管理系统,Asp...
内含(重启、图片操作、ip操作、键盘与鼠标、客户端以及服务端、文件传输等实例源码) 多个VC++加密解密算法库(CRYPT++) 详细讲解了Crypt++的加密解密的使用以及其它的加密解密方法(例如base64加解密、哈希加...
编程语言:Viusal Basic/Viusal C++/Delphi/ASP/IE/Powerbuild/Viusal Foxpro/C++ Builder/.NET(vb.net c# vc.net)/易语言 文件管理功能: 1. 支持的文件格式包括:BMP、GIF、ICO、TGA、PCX、WBMP、WMF、JPEG、...
功能介绍: 为网页编程人员提供能够自动生成验证码图像并验证网页访问者输入的Web控件,具体功能如下: 1. 提供简单易用的设计时所见即所得的可视化设置方式,并且支持设计时验证码图像效果与特效属性设置...
│ │ └─实例99 如何以任意比例缩放显示图像 │ ├─第6章 数据库开发 │ │ ├─实例113 如何读写Access数据库 │ │ ├─实例114 如何查询Access数据库 │ │ ├─实例115 如何创建SQL Server数据库 │ │ ├─...
│ └─第31讲 拖拉练习 │ ├─第05部分 ASP.NET │ │ ├─第36讲 在线投票 │ │ ├─第37讲 论坛 │ │ └─第三十三讲 绕过ASP.NET │ ├─第06部分 移动电话上网 │ │ ├─第四十一讲 手机...
│ └─第31讲 拖拉练习 │ ├─第05部分 ASP.NET │ │ ├─第36讲 在线投票 │ │ ├─第37讲 论坛 │ │ └─第三十三讲 绕过ASP.NET │ ├─第06部分 移动电话上网 │ │ ├─第四十一讲 手机...