博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
生成图片缩略图方法
阅读量:5878 次
发布时间:2019-06-19

本文共 1971 字,大约阅读时间需要 6 分钟。

 
private void DrawImageRectRect(string rawImgPath, string newImgPath, int width, int height)        {            System.Drawing.Image imageFrom = System.Drawing.Image.FromFile(rawImgPath);            // 源图宽度及高度             int imageFromWidth = imageFrom.Width;            int imageFromHeight = imageFrom.Height;             //在原画布中的位置            int X, Y;            //在原画布中取得的长宽            int bitmapWidth, bitmapHeight;              根据源图及欲生成的缩略图尺寸,计算缩略图的实际尺寸及其在"画布"上的位置             if (imageFromWidth / width > imageFromHeight / height)            {                bitmapWidth = (width * imageFromHeight) / height;                bitmapHeight = imageFromHeight;                X = (imageFromWidth - bitmapWidth) / 2;                Y = 0;            }            else            {                bitmapWidth = imageFromWidth;                bitmapHeight = (height * imageFromWidth) / width;                X = 0;                Y = (imageFromHeight - bitmapHeight) / 2;             }            // 创建画布             Bitmap bmp = new Bitmap(width, height);            Graphics g = Graphics.FromImage(bmp);            // 用白色清空             g.Clear(Color.White);            // 指定高质量的双三次插值法。执行预筛选以确保高质量的收缩。此模式可产生质量最高的转换图像。             g.InterpolationMode = InterpolationMode.HighQualityBicubic;            // 指定高质量、低速度呈现。             g.SmoothingMode = SmoothingMode.HighQuality;            // 在指定位置并且按指定大小绘制指定的 Image 的指定部分。             g.DrawImage(imageFrom, new Rectangle(0, 0, width, height), new Rectangle(X, Y, bitmapWidth, bitmapHeight), GraphicsUnit.Pixel);            try            {                //经测试 .jpg 格式缩略图大小与质量等最优                 bmp.Save(newImgPath, ImageFormat.Jpeg);            }            catch            {            }            finally            {                //显示释放资源                 imageFrom.Dispose();                bmp.Dispose();                g.Dispose();            }        }

  

来源: ;

转载于:https://www.cnblogs.com/weschen/p/6264637.html

你可能感兴趣的文章
推荐系统那点事 —— 基于Spark MLlib的特征选择
查看>>
linux 下RTL8723/RTL8188调试记录(命令行)【转】
查看>>
開始新的征程
查看>>
SpringMVC案例1——对User表进行CRUD操作
查看>>
看雪CTF第十四题
查看>>
模拟生命_吸烟致癌?
查看>>
[Contiki系列论文之1]Contiki——为微传感器网络而生的轻量级的、灵活的操作系统...
查看>>
Android 网络编程 记录
查看>>
微软同步发行Windows 10和Windows 10 Mobile系统更新
查看>>
Maven 传递依赖冲突解决(了解)
查看>>
Zeppelin的入门使用系列之使用Zeppelin运行shell命令(二)
查看>>
[Spark][Python]Spark Join 小例子
查看>>
form表单下的button按钮会自动提交表单的问题
查看>>
大战设计模式【11】—— 模板方法模式
查看>>
springBoot介绍
查看>>
Intellij IDEA 快捷键整理
查看>>
Redis 通用操作2
查看>>
11. Spring Boot JPA 连接数据库
查看>>
洛谷P2925 [USACO08DEC]干草出售Hay For Sale
查看>>
MapReduce工作原理流程简介
查看>>