C#中Bitmap类实现对图像操作的一些方法(Asp.net(C#)-放大缩小图片尺寸)
导入以下两个包:
System.Drawing;
System.Drawing.Imaging;
建产对象:
Bitmap bm = new Bitmap("c:/1.bmp");
缩放:
Bitmap bm1 = new Bitmap(bm,width,height);
格式转换:
bm.save("c:/1.jpg",ImageFromat.Jpeg);
bm1.Save("c:/1.gif", ImageFormat.Gif);
剪切一个区域:
//剪切大小
int cutwidth;
int cutheight;
Graphics g;
//以大小为剪切大小,像素格式为32位RGB创建一个位图对像
Bitmap bm1 = new Bitmap(width,height,PixelFormat.Format32bppRgb) ;
//定义一个区域
Rectangle rg = new Rectangle(0,0,cutwidth,cutheight);
//要绘制到的位图
g = Graphics.FromImage(bm1);
//将bm内rg所指定的区域绘制到bm1
g.DrawImage(bm,rg)
Asp.net(C#)-放大缩小图片尺寸
/// <summary>
/// 放大缩小图片尺寸
/// </summary>
/// <param name="picPath"></param>
/// <param name="reSizePicPath"></param>
/// <param name="iSize"></param>
/// <param name="format"></param>
public void PicSized(string picPath, string reSizePicPath, int iSize, ImageFormat format)
{
Bitmap originBmp = new Bitmap(picPath);
int w = originBmp.Width * iSize;
int h = originBmp.Height * iSize;
Bitmap resizedBmp = new Bitmap(w, h);
Graphics g = Graphics.FromImage(resizedBmp);
//设置高质量插值法
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
//设置高质量,低速度呈现平滑程度
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
//消除锯齿
g.SmoothingMode = SmoothingMode.AntiAlias;
g.DrawImage(originBmp, new Rectangle(0, 0, w, h), new Rectangle(0, 0, originBmp.Width, originBmp.Height), GraphicsUnit.Pixel);
resizedBmp.Save(reSizePicPath, format);
g.Dispose();
resizedBmp.Dispose();
originBmp.Dispose();
}
/// 放大缩小图片尺寸
/// </summary>
/// <param name="picPath"></param>
/// <param name="reSizePicPath"></param>
/// <param name="iSize"></param>
/// <param name="format"></param>
public void PicSized(string picPath, string reSizePicPath, int iSize, ImageFormat format)
{
Bitmap originBmp = new Bitmap(picPath);
int w = originBmp.Width * iSize;
int h = originBmp.Height * iSize;
Bitmap resizedBmp = new Bitmap(w, h);
Graphics g = Graphics.FromImage(resizedBmp);
//设置高质量插值法
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
//设置高质量,低速度呈现平滑程度
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
//消除锯齿
g.SmoothingMode = SmoothingMode.AntiAlias;
g.DrawImage(originBmp, new Rectangle(0, 0, w, h), new Rectangle(0, 0, originBmp.Width, originBmp.Height), GraphicsUnit.Pixel);
resizedBmp.Save(reSizePicPath, format);
g.Dispose();
resizedBmp.Dispose();
originBmp.Dispose();
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
2008-05-22 javascript基本和常用的东西