Asp.Net 高清图片缩略图生成

生成缩略图核心代码:

/// <summary>
        /// 图片上传 生成缩略图
        /// </summary>
        /// <param name="files">文件上传控件</param>
        /// <param name="path">文件夹名称</param>
        /// <param name="fname">文件名称</param>
        /// <param name="w">缩略图宽度</param>
        /// <param name="h">缩略图高度</param>
        public static void UploadImageThumbs(HttpPostedFile files, string filePath, string fname, int w, int h)
        {
            if (UtilsFile.IsOrNoFileUp(files) && fname.Equals(String.Empty) == false)
            {
                UtilsFile.DirectorysCreate(filePath);
                Image image = Image.FromStream(files.InputStream, true);
                //等比例缩放
                if (w > 0 && h > 0)
                {
                    if (image.Width > image.Height)
                    {
                        if (image.Width > w)
                            h = (int)(image.Height * ((decimal)w / image.Width));
                        else
                        {
                            h = image.Height;
                            w = image.Width;
                        }
                    }
                    else
                    {
                        if (image.Height > h)
                            w = (int)(image.Width * ((decimal)h / image.Height));
                        else
                        {
                            h = image.Height;
                            w = image.Width;
                        }
                    }
                }
                else if (w > 0 && h == 0)
                {
                    if (image.Width < w)
                        w = image.Width;
                    h = (int)(image.Height * ((decimal)w / image.Width));
                }
                else if (w == 0 && h > 0)
                {
                    if (image.Height < h)
                        h = image.Height;
                    w = (int)(image.Width * ((decimal)h / image.Height));
                }
                else
                {
                    w = image.Width;
                    h = image.Height;
                }

                Bitmap ret = new Bitmap(w, h);

                using (Graphics g = Graphics.FromImage(ret))
                {
                    g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
                    g.FillRectangle(Brushes.White, 0, 0, w, h);
                    g.DrawImage(image, 0, 0, w, h);
                    EncoderParameters parms = new EncoderParameters();
                    long[] quality = new long[1];
                    quality[0] = 80;
                    EncoderParameter parm = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality);
                    parms.Param[0] = parm;
                    ImageCodecInfo[] arr = ImageCodecInfo.GetImageEncoders();
                    ImageCodecInfo ar = null;
                    for (int x = 0; x < arr.Length; x++)
                    {
                        if (arr[x].FormatDescription.Equals("JPEG"))
                        {
                            ar = arr[x];
                            break;
                        }
                    }

                    ret.Save(filePath + fname, ar, parms);
                    ret.Dispose();
                    image.Dispose();
                }
            }
        }

总结:以上生成缩略图代码,效果是比较好的,就是有时候红色的点会失真,比较无解。不过这问题基本可以忽略不计。较真的朋友,如有较好的生成代码,可以共享。

原文转载: http://www.dyxue.com/tech/id2498.html

Asp.Net 高清图片缩略图生成,布布扣,bubuko.com

时间: 2024-10-19 03:01:59

Asp.Net 高清图片缩略图生成的相关文章

关于SDWebImage加载高清图片导致app崩溃的问题

链接是对于SDWebImage的使用方法 http://www.cnblogs.com/JimmyBright/p/4457258.html 使用SDWebImage加载高清图片的时候,往往会报内存溢出的错误导致程序直接crash.比如说,你的程序加载10张左右的单反相片,这些相片每张都在10M左右,使用SDWebImage下载缓存再显示的方法,程序肯定会直接挂掉,查看内存图标一般是这种情况 这个程序一般运行内存消耗是13M左右,但是在加载了某张10M左右的图片后,突然有一个上升,飙升到178M

高楼大厦素材高清图片

这个作品的设计我还是非常喜欢的.收藏一下! 高楼大厦素材高清图片 高楼大厦高清,高楼大厦素材,高楼大厦,城市建筑,高楼,城市高楼,都市建筑,城市建筑群,高层建筑,大楼,高层写字楼,优美风景,摄影,自然景观,建筑景观,摩天大厦,城市建筑,都市建筑,PSD分层图层,72DPI 素材地址:高楼大厦素材高清图片

电脑上怎么将多张CAD图纸文件快速转换成高清图片格式?

电脑上怎么将多张CAD图纸文件快速转换成高清图片格式?将CAD图纸文件进行格式转换成图片样式是CAD相关的工作中经常需要进行的,为了方便将图纸文件进行打开查看或是将其进行传输,都会需要将其进行转换成图片格式,具体应该怎么样进行操作,下面小编就要来教大家的就是电脑上怎么将多张CAD图纸文件快速转换成高清图片格式的全部操作步骤,希望能够帮助到你们! 步骤一:首先需要进行打开操作的是你们电脑上面的 迅捷CAD转换器软件,电脑上面没有这款软件的可以去到迅捷CAD官网上面进行下载安装! 步骤二:将其下载之

整理了二十多个免费高清图片素材网站,送给你

用心分享,共同成长 没有什么比你每天进步一点点更重要的了 本文已经收录至我的github,欢迎大家踊跃star 和 issues. https://github.com/midou-tech/articles  我要写公众号难免会用到很多素材,那天我想找个图片作为文章封面,找了好多网站,要么没有版权,要么需要付费.找了好久找到下面这些免费.高清.无版权的图片素材网站. ?一口气整理了2十多个免费高清图片素材网站,不管你是作为写作素材.商业素材.还是找桌面.找背景,都收藏它吧 <h3 align=

找高清图片

网站数量较多,如果贴图,会显得文章很长,估计会很少有人有耐心看完,所以本文主要以文字为主,各取所需吧. 摄影素材 Unsplash 主要是摄影作品为主 Pexels 海量共享图片素材 FancyCrave 免费摄影图片资源库 Life of Pix 无版权欧美生活图片 商用或者开发者使用 Pixabay 第三方用户和网站开发人员可以通过接口搜索其图像数据库 kaboompics 适用于博主.网站主.自由职业者.网页设计师 Magdeleine 高清灵感系图片 pngimg PNG透明背景图库,抠

Java 实现生成图片缩略图,缩小高清图片

import com.sun.image.codec.jpeg.JPEGImageEncoder; import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.jpeg.JPEGEncodeParam; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.util.HashMap; import java.uti

html2canvas 生成高清图片

html2canvas.js 要改2处代码 第1处代码 line 603 window.html2canvas = function(nodeList, options) {     var index = html2canvasCloneIndex++;     options = options || {};     if (options.logging) {         window.html2canvas.logging = true;         window.html2ca

高并发图片(缩略图)处理中间层服务架构设计

互联网公司经常会有大量原始图片上传,而且一个原图会在页面以不同尺寸缩略图显示,一般有两种策略生成缩略图,一种在上传图片时,生成需要的多张不同缩略图,另一种是请求指定尺寸的图片时实时生存缩略图片,第一种方式有一定限制,就是需要提前知道所有尺寸的图片,做雍余存储,无形中增加大量文件数量,如果文件系统设计不好,还有可能形成大量文件碎片,而且会消耗大量存储空间,如果前端ui设计改变了图片大小,需要重新生成.而第二种方式更加灵活,但是更消耗cpu资源,属于cpu密集计算型 大吞吐量服务端架构设计要考虑四个

从excel中导出高清图片

微软的excel导出的图片往往达不到投稿期刊的要求,诸如复制到word.ppt或者另存为网页等方法得到的图片也不尽人意. 据说复制到Adobe illustrator (AI)软件里可以保存为各种分辨率的位图或者矢量图. 这里推荐一个excel插件XL Toolbox,链接如下:https://www.xltoolbox.net/,可以生成各种规格(dpi)的图片. 原文地址:https://www.cnblogs.com/liulele/p/8364840.html