[C#] 生成略缩图

news/2024/6/17 3:40:28

// 生成略缩图
   string strImage = null;
   string strRegex = @" .*?)(""|')?(/s|>)";
   MatchCollection mc = Regex.Matches( FreeTextBox.Text
    , strRegex,RegexOptions.IgnoreCase | RegexOptions.Singleline
    );
   foreach(Match m in mc)
   {
                strImage = m.Groups["src"].ToString();
    string strSrcImgPath = Server.UrlDecode(Server.MapPath(strImage));

    if( !File.Exists(strSrcImgPath) )
     break;

    string strDestImgPath =
     Server.MapPath(GV.s_strSmallImgPath)
     + GV.GetFileChecksum(strSrcImgPath)
     + ".jpg";


    System.Drawing.Image srcImg = System.Drawing.Image.FromFile(strSrcImgPath);

    // 计算略缩图大小
    float cx, cy;
    if( srcImg.Height > GV.s_fSmallImgHeight )
    {
     // 比例系数
     float k = (float)srcImg.Height / GV.s_fSmallImgHeight;
     cy = srcImg.Height / k;
     cx = srcImg.Width / k;
    }
    else
    {
     cx = srcImg.Width;
     cy = srcImg.Height;
    }

    // 创建略缩图
    System.Drawing.Image.GetThumbnailImageAbort callb =
     new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback);
    System.Drawing.Image destImg = srcImg.GetThumbnailImage( (int)cx
     , (int)cy
     , callb
     , new System.IntPtr() );

    srcImg.Dispose();

    destImg.Save( strDestImgPath, ImageFormat.Jpeg);
    destImg.Dispose();

    int nIndex = strDestImgPath.LastIndexOf("//");
    rs.PutCollect( "SmallImg",
     strDestImgPath.Substring( nIndex + 1, strDestImgPath.Length - nIndex - 1) );
   
    break;
   }





http://www.niftyadmin.cn/n/3654640.html

相关文章

Axure RP6 学习笔记(2)

学习资料【Axure 快速原型设计Axure Rapid Prototyping 作者:陈良泳】 以学习的习惯,先来一个例子~~~ 第一个实例 简单登陆界面 案例描述 这是一个较为简单的登陆界面,输入用户名、密码后,点击登陆按钮进行登陆校验:…

央行发布第三方支付业务系统检测认证新规

中国人民银行2011年6月21日发布《非金融机构支付服务业务系统检测认证管理规定》,明确将对因认证问题造成不良后果的机构给予处罚,保障非金融机构支付服务业务系统检测认证工作规范有序开展,并即日起开始施行。金融机构支付服务业务系统检测认…

[MSSQL]将用户表 存储过程 变成系统的

将用户表变成系统表exec sp_configure allow updates,1 reconfigure with overrideUPDATE sysobjects SET status status | 0x80000000 WHERE [NAME] 表名称exec sp_configure allow updates,0 reconfigure with override还原exec sp_configure allow updates,1 reconfigure …

城市一卡通系统走进线上支付“芯”时代

互联网的快速发展极大地丰富了人们的生活,催生了大量在线支付应用吸引了用户的极大热情,这从第三方支付市场的快速增长就可见一斑,在首批27家企业获得牌照之后,二批牌照申请工作正在紧锣密鼓进行之中。与此同时,城市一…

IntelliJ IDEA中tomcat启动项目一直在build问题

用到的工具和配置: IntelliJ IDEA 2019.2.4 x64Tomcat 8.5.51JDK 1.8maven包是同事给的。 最近接触到一个难搞的jsp项目,之所以说它难搞是因为,在配置好所有配置后,居然启动不了,一直在build。 排查错误过程 删除本…

解析Js中和、|和||运算符的区别和运算过程

| 和 &属于位运算符,而 || 和 && 属于逻辑运算符。 &运算符 先在浏览器控制台,举个例子: 为什么 234 & 456 打印的结果是200? &的运算步骤: 先把234,456两个十进制的数字转换成二进制分别为…

神州数码:我国市民卡发展之路探讨

编者语:说起神州数码,大家都知道是我国IT巨头,最近两年来,神州数码在市民卡领域不断开拓业务,并取得业界领先的位置,受到不少的关注,为了比较系统地了解和分析我国市民卡当前的现状及探讨未来发…