随笔 - 46  文章 - 1 评论 - 29 trackbacks - 1

QQ:363894870
MSN:xlwei_ever@hotmail.com

搜索

 

随笔分类

.net

e.studio

groups

组件设计

阅读排行榜

评论排行榜

  看Web Cast的时候看到了讲文件和图片处理的视频,而现在正好有必要仔细研究一下这方面,所以自己照着示例的代码和说明试着写了一个。
  第一个错误是提示:无法访问System.Drawing.Imaging.ImageFormat,因为它受保护级别限制。后来找了半天,发现是一个字母的大小写弄错了。
  ImageFormat f = ImageFormat.bmp;
  将这段代码改成ImageFormat f = ImageFormat.Bmp; 调试就没有错了。
  然后运行,装载图片都没没有错,可是将图片转换为其他格式的时候又会提示出错了:异常详细信息: System.Runtime.InteropServices.ExternalException: GDI+ 中发生一般性错误。百度了一下,说是在iis中访问权限不够,后来将我需要使用的目录(在此程序中是D盘)设置成(everyone的权限都是可读写的),最后终于能成功运行了,不过这样子也降低了安全性,有时间要好好看看清华大学出版的那本.NET应用程序安全策略.
  页面的后台代码如下(运行成功的):
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Drawing.Imaging;

namespace Picture
{
    
/// <summary>
    
/// BasicImage 的摘要说明。
    
/// </summary>
    public class BasicImage : System.Web.UI.Page
    {
        
private void Page_Load(object sender, System.EventArgs e)
        {
            
// 在此处放置用户代码以初始化页面
        }
        
protected System.Web.UI.WebControls.Label Label1;
        
protected System.Web.UI.WebControls.Label Label2;
        
protected System.Web.UI.WebControls.Button LoadBtn;
        
protected System.Web.UI.WebControls.TextBox tbPath;
        
protected System.Web.UI.WebControls.Image ImageShow;
        
protected System.Web.UI.WebControls.Button Convert;
        
protected System.Web.UI.WebControls.DropDownList ddlFormat;
        
protected System.Web.UI.HtmlControls.HtmlInputFile InputFile;


        
#region Web 窗体设计器生成的代码
        
override protected void OnInit(EventArgs e)
        {
            
//
            
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
            
//
            InitializeComponent();
            
base.OnInit(e);
        }
        
        
/// <summary>
        
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
        
/// 此方法的内容。
        
/// </summary>
        private void InitializeComponent()
        {    
            
this.Load += new System.EventHandler(this.Page_Load);
            
this.LoadBtn.Click += new System.EventHandler(LoadBtn_Click);
            
this.Convert.Click += new System.EventHandler(Convert_Click);
        }
        
#endregion

        
protected void LoadBtn_Click(object sender,System.EventArgs e)
        {
            ImageShow.ImageUrl 
= InputFile.PostedFile.FileName;
        }

        
protected void Convert_Click(object sender,System.EventArgs e)
        {
            
string strFilePathName = ImageShow.ImageUrl;
            System.Drawing.Image i 
= System.Drawing.Image.FromFile(strFilePathName);

            
//以下得到在服务器上保存的文件路径名
            string strFileName = Path.GetFileNameWithoutExtension(strFilePathName);
            ImageFormat f 
= ImageFormat.Bmp;
            
switch(ddlFormat.SelectedItem.Text.ToLower())
            {
                
case"bmp":
                         
break;
                
case"jpeg":
                         f 
= ImageFormat.Jpeg;
                    
break;
                
case"gif":
                         f 
= ImageFormat.Gif;
                    
break;
                
case"png":
                         f 
= ImageFormat.Png;
                    
break;
                
case"tiff":
                         f 
= ImageFormat.Tiff;
                    
break;
            }
            
string strSeverPath=tbPath.Text+"\\"+strFileName+"."+
                ddlFormat.SelectedItem.Text;
            
try
            {
                i.Save(strSeverPath,f);
            }
            
catch(System.Exception exception)
            {
                
throw exception;
            }
        }
    }
}




posted on 2007-04-21 09:03 谢良威 阅读(108) 评论(0)  编辑 收藏 网摘

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
"五向定位"职业成长路线公开课(上海、南京、大连)
Google站内搜索


相关链接: