• c#生成缩略图


    publicstaticvoidGenThumbnail(Image imageFrom,stringpathImageTo,intwidth,intheight)

            {
     
                if(imageFrom==null)
                {
                    return;
                }
                // 源图宽度及高度
                intimageFromWidth=imageFrom.Width;
                intimageFromHeight=imageFrom.Height;
                // 生成的缩略图实际宽度及高度
                intbitmapWidth=width;
                intbitmapHeight=height;
                // 生成的缩略图在上述"画布"上的位置
                intX=0;
                intY=0;
                // 根据源图及欲生成的缩略图尺寸,计算缩略图的实际尺寸及其在"画布"上的位置
                if(bitmapHeight*imageFromWidth>bitmapWidth*imageFromHeight)
                {
                    bitmapHeight=imageFromHeight*width/imageFromWidth;
                    Y=(height-bitmapHeight)/2;
                }
                else
                {
                    bitmapWidth=imageFromWidth*height/imageFromHeight;
                    X=(width-bitmapWidth)/2;
                }
                // 创建画布
                Bitmap bmp=newBitmap(width,height);
                Graphicsg=Graphics.FromImage(bmp);
                // 用白色清空
                g.Clear(Color.White);
                // 指定高质量的双三次插值法。执行预筛选以确保高质量的收缩。此模式可产生质量最高的转换图像。
                g.InterpolationMode=InterpolationMode.HighQualityBicubic;
                // 指定高质量、低速度呈现。
                g.SmoothingMode=SmoothingMode.HighQuality;
                // 在指定位置并且按指定大小绘制指定的 Image 的指定部分。
                g.DrawImage(imageFrom,newRectangle(X,Y,bitmapWidth,bitmapHeight),newRectangle(0,0,imageFromWidth,imageFromHeight),GraphicsUnit.Pixel);
                try
                {
                    //经测试 .jpg 格式缩略图大小与质量等最优
                    bmp.Save(pathImageTo,ImageFormat.Jpeg);
                }
                catch
                {
                }
                finally
                {
                    bmp.Dispose();
                    g.Dispose();
                }
    }
  • 相关阅读:
    IntelliJ IDEA注册码
    linux中patch命令 -p 选项
    设备文件简介
    《算法导论》——矩阵
    《算法导论》——数论
    linux常用查看硬件设备信息命令(转载)
    netstat和telnet命令在Windows7中的用法(转载)
    c++容器使用总结(转载)
    离散数学——数论算法
    c语言中内存对齐问题
  • 原文地址:https://www.cnblogs.com/bile/p/3168792.html
Copyright © 2020-2023  润新知