1. 程式人生 > >C#圖片處理之:在圖片上畫框(圈)

C#圖片處理之:在圖片上畫框(圈)

有時候給別人演示圖片,例如培訓某個軟體使用的時候,往往需要在畫面上畫個框或者圈,提醒使用者注意這是個重點。其實這個功能並不難,只需要知道Pen物件的用法就可以了。我們對框或者圈樣式的控制都可以通過對Pen的控制來實現。

///<summary>
        
/// 在圖片上畫框
        
///</summary>
        
///<param name="bmp">原始圖</param>
        
///<param name="p0">起始點</param>
        
///<param name="p1">終止點</param>

        
///<param name="RectColor">矩形框顏色</param>
        
///<param name="LineWidth">矩形框邊界</param>
        
///<returns></returns>

publicstatic Bitmap DrawRectangleInPicture(Bitmap bmp, Point p0, Point p1, Color RectColor, int LineWidth,DashStyle ds)
        
{
            
if (bmp 
==nullreturnnull;
                     

            Graphics g 
= Graphics.FromImage(bmp);

            Brush brush 
=new SolidBrush(RectColor);
            Pen pen 
=new Pen(brush, LineWidth);
            pen.DashStyle 
= ds;

            g.DrawRectangle(pen, 
new Rectangle(p0.X, p0.Y, Math.Abs(p0.X - p1.X), Math.Abs(p0.Y 
- p1.Y)));

            g.Dispose();

            
return bmp;
        }



        
///<summary>
        
/// 在圖片上畫橢圓
        
///</summary>
        
///<param name="bmp"></param>
        
///<param name="p0"></param>
        
///<param name="RectColor"></param>
        
///<param name="LineWidth"></param>
        
///<param name="ds"></param>
        
///<returns></returns>

publicstatic Bitmap DrawRoundInPicture(Bitmap bmp, Point p0, Point p1, Color RectColor, int LineWidth, DashStyle ds)
        
{
            
if (bmp ==nullreturnnull;

            Graphics g 
= Graphics.FromImage(bmp);

            Brush brush 
=new SolidBrush(RectColor);
            Pen pen 
=new Pen(brush, LineWidth);
            pen.DashStyle 
= ds;

            g.DrawEllipse(pen, 
new Rectangle(p0.X, p0.Y, Math.Abs(p0.X - p1.X), Math.Abs(p0.Y - p1.Y)));

            g.Dispose();

            
return bmp;
        }

相關推薦

C#圖片處理:在圖片畫框

有時候給別人演示圖片,例如培訓某個軟體使用的時候,往往需要在畫面上畫個框或者圈,提醒使用者注意這是個重點。其實這個功能並不難,只需要知道Pen物件的用法就可以了。我們對框或者圈樣式的控制都可以通過對Pen的控制來實現。 /**////<summary>    

C#圖片處理:圖片縮放和剪裁

應聽眾點播要求,今天說說用C#做圖片的縮放和剪裁,相信很多人會對這部分內容感興趣,畢竟這個操作太實用了。 其實在GDI+中,縮放和剪裁可以看作同一個操作,無非就是原始區域的選擇不同罷了。空口無憑,先看具體演算法可能更好理解。         /// <summary&g

《Visual C++異常處理機制原理與應用—— C/C++結構化異常處理try-finally終止處理的使用與原理

在上一篇文章中,我們其實只分析了終止型異常處理程式中正常的執行流程,這種情況的出現其實需要作如下假設: __try塊中的程式碼執行過程中不會引發異常 這部分程式碼不會試圖提前離開__try塊的作用範圍(如包含goto、break、continue、retur

PHP極其強大的圖片處理庫Grafika詳細教程1:影象基本處理

use Grafika\Grafika; $editor = Grafika::createEditor(); $src = 'yanying.jpg'; $editor->open( $image, $src ); $editor->crop( $image, 300, 200, 'top-l

【Android架構】基於MVP模式的Retrofit2+RXjava封裝檔案

最近手頭事比較多,抽個空把之前系列也補充一下。 先回顧下之前的 【Android架構】基於MVP模式的Retrofit2+RXjava封裝(一) 【Android架構】基於MVP模式的Retrofit2+RXjava封裝之檔案下載(二) 今天要說的是檔案上傳 1.單圖上

C++知識點備忘錄函式、指標

1、引數為空 void say_hi():在C++中,括號為空與在括號中使用關鍵字void是等效的——意味著函式沒有引數。 2、傳遞陣列 為將陣列型別和元素數量告訴陣列處理函式,請通過兩個不同的引數來傳遞他們:         void fillArray(int a

資料預處理抽取文字資訊2

摘要:大資料技術與我們日常生活越來越緊密,要做大資料,首要解決資料問題。原始資料存在大量不完整、不一致、有異常的資料,嚴重影響到資料建模的執行效率,甚至可能導致模型結果的偏差,因此要資料預處。資料預處理主要是將原始資料經過文字抽取、資料清理、資料整合、資料處理、資料變換、資料降維等處理後,不

linux下C 程式設計學習多程序程式設計

一、程序概念 程序是作業系統中資源分配的最小單位,而執行緒是排程的最小單位。 一個程序,主要包含三個元素: a)        一個可以執行的程式; b)        和該程序相關聯的全部資料(包括變數,記憶體空間,緩衝區等等); c)        程式的執行上下文(

影象處理Non-Local MeansNM 非區域性均值

1、非區域性均值去噪是空域濾波的一個重大突破,它利用自然影象的冗餘,基本思想是:當前畫素點的灰度值與影象中所有與其結構相似的畫素點加權平均得到。如何衡量結構相似的畫素點,也即如何確定權值係數?其做法是:對於每一個畫素點的權值,採用以該畫素點為中心的影象子塊(7*7)或(9

視訊、圖形影象處理Opencv技術記錄、Opencv教程影象處理imgproc模組平滑影象

目標 在本教程中,您將學習如何使用OpenCV函式應用各種線性濾鏡來平滑影象,例如: 理論 注意 下面的解釋屬於Richard Szeliski和LearningOpenCV的計算機視覺:演算法和應用一書 平滑,也稱為模糊,是一種簡單且經常使用的影象處理操作。

CUDA學習--記憶體處理暫存器2

1. 暫存器 GPU上一個SM可以看成一個多執行緒的CPU核。一般CPU擁有二、四、八個核。但一個GPU卻有N個SM核。但這裡需要注意的是,所有的工作都是有SM上的SP(流處理器)處理的。每個核上SP數目不同,因此每個核支援的執行緒數目也會有很大的不同。事實上

視訊、圖形影象處理Opencv技術記錄、均衡直方圖

目標 在本教程中,您將學習: 什麼是影象直方圖以及為什麼它有用 理論 什麼是影象直方圖? 它是影象強度分佈的圖形表示。 它量化了所考慮的每個強度值的畫素數。 什麼是直方圖均衡?

C++——演算法基礎排序——氣泡排序優化

今天,大白跟大家聊一聊氣泡排序的優化,我們都知道氣泡排序是幾種穩定排序中比較快的一種排序了。 但是,演算法的優化永無止境,革命尚未成功,“同志”仍須努力(嘻嘻)。 今天大白再看了教科書之後,並且融入了一些自己的想法,使得氣泡排序更加優化了。 首先,我們來看一組圖: bu

C++設計模式八:Composite組合

一、意圖: 將物件組合成樹形結構以表示成“部分-整體”的層次結構; 二、類圖: 三、組成元素: Component:頂層介面,用於訪問子元件; Leaf:葉節點,沒有子節點; Composite:用於儲存子節點; 四、程式碼實現: #include <

C#圖片處理3種高階應用高縮圖清晰度、圖片剪裁、圖片水印

利用C#圖片處理的一些基本和高階應用,解決了顯示排版時想讓相片縮圖列表非常統一、整齊、和美觀,每張縮圖大小固定為120 x 90且不拉伸變形,使用者頭像讓縮圖比原圖更清晰,上傳的圖片下加一個半透明的LOGO水印等等要求。 高縮圖清晰度 之前一直認為縮圖不可能比原圖清晰,直到某天一位產品的同事給

Python影象處理圖片文字識別OCR

OCR與Tesseract介紹   將圖片翻譯成文字一般被稱為光學文字識別(Optical Character Recognition,OCR)。可以實現OCR 的底層庫並不多,目前很多庫都是使用共同的幾個底層OCR 庫,或者是在上面進行定製。   Tess

C# 圖片處理:彩色圖片轉為黑白圖

首先解釋下所謂的黑白圖片。其實更準確地應該叫256級灰度圖。當一個顏色點的R=G=B時,就是我們所謂的“灰色”。由於RGB的取值範圍在[0,255],所以一共只有256種可能。 所以彩色圖片轉為黑白圖片的原理非常簡單。只要掃描彩圖的每一點,讓輸出圖對應點的R=G=B就成了。現

轉載-Python影象處理圖片文字識別OCR

點選開啟連結   segmentFault_jclian91_Python影象處理之圖片文字識別(OCR)OCR與Tesseract介紹  將圖片翻譯成文字一般被稱為光學文字識別(Optical Character Recognition,OCR)。可以實現OCR 的底層庫並

HTML5+Canvas+jQuery調用手機拍照功能實現圖片

customer mkdir 狀態保存 ont false lan else if 項目 action 上一篇僅僅講到前臺操作,這篇專門涉及到Java後臺處理。前臺通過Ajax提交將Base64編碼過的圖片數據信息傳到Java後臺,然後Java這邊進行接收處理。通過

HTML5 file API加canvas實現圖片前端JS壓縮並轉載

www. 手機 回調 pre lan 瀏覽器中 rdp 效果 二進制 一、圖片上傳前端壓縮的現實意義 對於大尺寸圖片的上傳,在前端進行壓縮除了省流量外,最大的意義是極大的提高了用戶體驗。 這種體驗包括兩方面: 由於上傳圖片尺寸比較小,因此上傳速度會比較快,交互會更