C#图像处理
简单的图片存取
通过bitmap的getpixel方法获取每个像素的rgb值 然后把它存入一个文件,然后再通过读取这个文件还原一个bitmap的例子,
。Net就是这么强大就是这么bt 也许你你不知道jpg的内部文件格式 也许你不知道bmp文件的内部格式(实际上也不是很复杂研究一下就OK啦 ˇ△ˇ)
但是你却可以借助.Net自带的GDI 图形库这个强大的东东作为桥梁在短时间来完成你想要的功能 ,你看哇哈哈 是不是发现你也会用C#编写图片处理工具了 (¯▽¯;) 编程就是这么的有趣。
啥加水印啊 啥调节某个区域的亮度啊 啥。。。。那些都自己整 只要有想法都可以实现
C#代码:
static void Main(string[] args) { //找一个640x480的图片 读取文件并把所有像素转存到文件a BinaryWriter sw; if (File.Exists("a")) File.Delete("a"); sw = new BinaryWriter(File.Create("a")); Bitmap img = new Bitmap("a.bmp"); for (int i = 0; i < img.Height; i++) { for (int j = 0; j < img.Width; j++) { Color cor = img.GetPixel(j, i); sw.Write(cor.R); sw.Write(cor.G); sw.Write(cor.B); } } sw.Close(); //从转存的文件中读取位图数据 并生成b.jpg BinaryReader br; br = new BinaryReader(new FileStream("a", FileMode.Open)); byte data; Bitmap img2 = new Bitmap(640, 480); for (int i = 0; i < img2.Height; i++) { for (int j = 0; j < img2.Width; j++) { byte r = br.ReadByte(); byte g = br.ReadByte(); byte b = br.ReadByte(); Color cor = Color.FromArgb(r, 0, b); img2.SetPixel(j, i, cor); } } br.Close(); img2.Save("b.jpg", ImageFormat.Jpeg); }
可以随意调整质量的jpg转储:
private void button1_Click(object sender, EventArgs e) { ImageCodecInfo ici; System.Drawing.Imaging.Encoder enc; EncoderParameter ep; EncoderParameters epa; // Initialize the necessary objects ici = GetEncoderInfo("image/jpeg"); enc = System.Drawing.Imaging.Encoder.Quality;//设置保存质量 epa = new EncoderParameters(1); // Set the compression level ep = new EncoderParameter(enc, 1L);//质量等级为25% epa.Param[0] = ep; // create a Bitmap object from a BMP file. System.Drawing.Image bmp = System.Drawing.Image.FromFile(@"11.jpg"); // Convert to JPEG and Save bmp.Save("111.jpg", ici, epa); } //将BMP图象转换为JPEG图象 private static ImageCodecInfo GetEncoderInfo(String mimeType) { int j; ImageCodecInfo[] encoders; encoders = ImageCodecInfo.GetImageEncoders(); for (j = 0; j < encoders.Length; ++j) if (encoders[j].MimeType == mimeType) return encoders[j]; return null; }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库