c#調(diào)整圖片分辨率的實(shí)現(xiàn)示例
描述:項(xiàng)目上有個(gè)需求是每隔一段時(shí)間從redis拿圖片(圖片格式為base64)
拿到之后將圖片發(fā)送給led屏,這里嘗試了下,圖片拿取沒(méi)啥問(wèn)題,發(fā)送給led屏也沒(méi)問(wèn)題,但就是圖片沒(méi)顯示出來(lái),后面查找后發(fā)現(xiàn),是因?yàn)閳D片分辨率的原因。
所以才有了下面的操作:
//這里是拿取redis的數(shù)據(jù),并將他它轉(zhuǎn)成圖片
public void UpdateBaiduMap()
{
if (client.ContainsKey("map_theroad"))
{
try
{
string img = client.Get<string>("map_theroad");
img = img.Replace("data:image/png;base64,", "").Replace("data:image/jgp;base64,", "").Replace("data:image/jpg;base64,", "").Replace("data:image/jpeg;base64,", "").Replace("{", "").Replace("}", ""); ;//將base64頭部信息替換
byte[] bytes = Convert.FromBase64String(img);
//本來(lái)準(zhǔn)備
//直接將bytes[]發(fā)送給led的,后面發(fā)現(xiàn)不行
MemoryStream memStream = new MemoryStream(bytes);
System.Drawing.Image mImage = System.Drawing.Image.FromStream(memStream);
Bitmap bp = new Bitmap(mImage);
string ImageFilePath = "../../LED/images";
if (System.IO.Directory.Exists("../../LED/images") == false)//如果不存在就創(chuàng)建文件夾
{
System.IO.Directory.CreateDirectory(ImageFilePath);
}
string ImagePath = ImageFilePath + "/baidu_maps.png";//定義圖片名稱(chēng)
//需要調(diào)整圖片分辨率
bp = KiResizeImage(bp, 170, 156);
bp.Save(ImagePath, System.Drawing.Imaging.ImageFormat.Png);//注意保存路徑
}
catch (Exception e)
{
}
}
}下面的方法是更改圖片分辨率
public Bitmap KiResizeImage(Bitmap bmp, int newW, int newH)
{
try
{
Bitmap b = new Bitmap(newW, newH);
Graphics g = Graphics.FromImage(b);
// 插值算法的質(zhì)量
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.DrawImage(bmp, new Rectangle(0, 0, newW, newH), new Rectangle(0, 0, bmp.Width, bmp.Height), GraphicsUnit.Pixel);
g.Dispose();
return b;
}
catch
{
return null;
}
}到此這篇關(guān)于c#調(diào)整圖片分辨率的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)c# 圖片分辨率內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
淺析C#封裝GRPC類(lèi)庫(kù)及調(diào)用簡(jiǎn)單實(shí)例
這篇文章主要為大家詳細(xì)介紹了C#中封裝GRPC類(lèi)庫(kù)及調(diào)用簡(jiǎn)單實(shí)例的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-04-04
WPF+ASP.NET SignalR實(shí)現(xiàn)后臺(tái)通知功能的示例代碼
本文以一個(gè)簡(jiǎn)單示例,簡(jiǎn)述如何通過(guò)WPF+ASP.NET SignalR實(shí)現(xiàn)消息后臺(tái)通知以及數(shù)據(jù)的實(shí)時(shí)刷新,僅供學(xué)習(xí)分享使用,如有不足之處,還請(qǐng)指正2022-09-09
C#檢測(cè)遠(yuǎn)程計(jì)算機(jī)端口是否打開(kāi)的方法
這篇文章主要介紹了C#檢測(cè)遠(yuǎn)程計(jì)算機(jī)端口是否打開(kāi)的方法,實(shí)例分析了C#實(shí)現(xiàn)檢測(cè)遠(yuǎn)程端口開(kāi)啟的技巧,需要的朋友可以參考下2015-03-03
C#原型模式之如何通過(guò)克隆對(duì)象來(lái)優(yōu)化創(chuàng)建過(guò)程
原型模式是一種創(chuàng)建型設(shè)計(jì)模式,通過(guò)克隆現(xiàn)有對(duì)象來(lái)創(chuàng)建新對(duì)象,避免重復(fù)的創(chuàng)建成本和復(fù)雜的初始化過(guò)程,它適用于對(duì)象創(chuàng)建過(guò)程復(fù)雜、需要大量相似對(duì)象或避免重復(fù)初始化的場(chǎng)景,本文介紹C#原型模式之如何通過(guò)克隆對(duì)象來(lái)優(yōu)化創(chuàng)建過(guò)程,感興趣的朋友一起看看吧2025-03-03
C#使用webbrowser的常見(jiàn)用法實(shí)例
這篇文章主要介紹了C#使用webbrowser的常見(jiàn)用法,涉及C#使用webbrowser實(shí)現(xiàn)判斷網(wǎng)絡(luò)連接、模擬登陸、點(diǎn)擊等常用技巧,需要的朋友可以參考下2015-08-08

