WPF GDI+字串繪製成圖片(一)
本章講述:在WPF中,使用GDI+技術,把字串資料,根據文字字型樣式,大小繪製成字串圖片;
1、XAML前臺程式碼
<Window x:Class="WPF_GDI_Test.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350" Width="625"> <Grid> <Image Name="img"/> </Grid> </Window>
2、後臺邏輯實現
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Windows.Forms; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using System.Drawing; namespace WPF_GDI_Test { /// <summary> /// MainWindow.xaml 的互動邏輯 /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); Drawing(); } private void Drawing() { string path = "C:\\WPF_GDI_Test.png"; string fontFamily = "Microsoft YaHei"; float fontSize = 100; string str1 = "Microsoft YaHei字型字串測"; Font font = new Font(fontFamily,fontSize); Bitmap map1 = new Bitmap(1920, 1080); Graphics gg = Graphics.FromImage(map1); SizeF sizeF = gg.MeasureString(str1, new Font(fontFamily, fontSize)); var size = TextRenderer.MeasureText(gg, str1, font, new System.Drawing.Size(0, 0)); FormattedText forma = Get_StrWidth(str1,fontFamily,fontSize); string strszie = string.Format("W = {0}, H = {1}", forma.Width, forma.Height); string strszie1 = string.Format("W = {0}, H = {1}", sizeF.Width, sizeF.Height); string strszie2 = string.Format("W = {0}, H = {1}", size.Width, size.Height); Bitmap map = new Bitmap(1920, 1080); Graphics g = Graphics.FromImage(map); g.PageUnit = GraphicsUnit.Pixel; g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; g.Clear(System.Drawing.Color.Black); g.DrawRectangle(new System.Drawing.Pen(System.Drawing.Color.Red, 4), 10, 10, 1900, 1060); g.DrawString(str1, font, System.Drawing.Brushes.Green, 0, 0); g.DrawString(strszie, font, System.Drawing.Brushes.Yellow, 0, 200); g.DrawString(strszie1, font, System.Drawing.Brushes.OrangeRed, 0, 400); g.DrawString(strszie2, font, System.Drawing.Brushes.Yellow, 0, 600); g.Dispose(); map.Save(path, System.Drawing.Imaging.ImageFormat.Png); map.Dispose(); BitmpToImageSource(path); } private FormattedText Get_StrWidth(string txt, string fontFamily, double fontSize) { FormattedText formattedText = new FormattedText( txt, System.Globalization.CultureInfo.InvariantCulture, System.Windows.FlowDirection.LeftToRight, new Typeface(fontFamily.ToString()), fontSize, System.Windows.Media.Brushes.Red ); return formattedText; } private void BitmpToImageSource(string filepath) { System.IO.FileStream fs =new System.IO.FileStream(filepath,System.IO.FileMode.Open, System.IO.FileAccess.Read); byte[] buffer = new byte[fs.Length]; fs.Read(buffer, 0, buffer.Length); fs.Close(); fs.Dispose(); System.IO.MemoryStream ms = new System.IO.MemoryStream(buffer); BitmapImage bitmapImage = new BitmapImage(); bitmapImage.BeginInit(); bitmapImage.StreamSource = ms; bitmapImage.EndInit(); img.Source = bitmapImage; } } }
3、效果圖:
相關推薦
WPF GDI+字串繪製成圖片(一)
本章講述:在WPF中,使用GDI+技術,把字串資料,根據文字字型樣式,大小繪製成字串圖片; 1、XAML前臺程式碼 <Window x:Class="WPF_GDI_Test.MainWindow" xmlns="http://schemas.mic
WPF GDI+字符串繪制成圖片(一)
inf lan acc [] isp tails mea summary blog 原文:WPF GDI+字符串繪制成圖片(一)
WPF Button按鈕模板樣式修改(一)
本章講述:Button簡單模板樣式的修改,圓角矩形按鈕實現; 主要通過修改控制元件模板以達到效果; XAML前端樣式程式碼:通過Border來控制控制元件的圓角;採用屬性觸發器控制滑鼠操作時,改變前景色和背景色。 <Style x:Key="ExButton" TargetTy
Python 字串內建方法(一)
以下方法只需要知道用法就行了,權當了解,不用硬背,以後需要用到的時候再回來看 說明: 一般方法中前面是is開頭的就是判斷來的,輸出不是True就是False,例如isalpha()方法 capitalize()方法:首字母大寫 In [1]: a='abc' In [2]: a.capit
angularjs手機webapp 利用input拍照,相簿選擇、縮圖顯示 上傳圖片(一)
執行後的截圖: html程式碼 <ul class="list_img"> <li ng-repeat="imageSrc in imgshows track by $index"> <img n
Essential Studio for WPF 2018 v3最新版釋出(一)
Essential Studio for WPF控制元件是用於建立利於分析且高效能的Windows應用程式,包含了利於分析且高效能的Windows應用程式開發中所需的所有控制元件,如 grids、charts、gauges、menus、calendars、editors等等,還能匯出資料到Excel、Wo
C語言字串處理基礎函式(一)
1.strlen()函式 功能:函式返回字串str 的長度( 即空值結束符之前字元數目,不包括控制結束符)。 語法: #include <string.h> size_t strlen( char *str ); 例子: #include <stdio
C# WPF 基礎教程 視訊學習筆記(一)
1.[STAThread()] 代表單執行緒 2.using語句允許程式設計師指定使用資源的物件應當何時釋放資源 3.Border 一般用於裝載面板 Padding 邊框和內部內容中間新增空間 CornerRadius可以使邊框具有一個圓角 4.DockP
字串轉換成整數(Java)
題目:字串轉換為整數。 思路:將字串轉化為整數首先是遍歷字串中的每一個字元,有三種情況:首字元是正號,首字元是負號,首字元非正負號;然後遍歷每一個字元進行num = num * 10 + charAr
wangEditor的使用及上傳圖片(一)
由於業務需要,最近新入手了一款富文字編輯器wangEditor,這是一款輕量級的富文字編輯器,比起百度的ueditor,這款編輯器的介面更加簡單,文件也很詳細。對於需求不是很高的功能來說,這款編輯器實在是不二之選。 一、wangEditor的基
利用協程asyncio爬取搜狗美女圖片(一)——asyncio庫的介紹和使用
上一節,我們通過分析ajax爬取搜狗美女圖片,(連結https://blog.csdn.net/MG1723054/article/details/81735834)這樣爬取的效率相對來說比較高,在文章的末尾我們使用程序池來提高效率,但是由於爬蟲主要是密集型IO操作,利用程序對其提高時效率不高,
王者榮耀是怎樣煉成的(一) 王者榮耀 用什麼開發,遊戲入門,unity3D介紹
在國內,如果你沒有聽說過《王者榮耀》,那你一定是古董級的人物了。 《王者
cropper裁剪圖片(一)
1、前言 在上傳圖片的過程中,我們經常會限制上傳圖片的尺寸,但是我們的圖片來源尺寸各異。所以在上傳之前需要先裁剪圖片然後再上傳。今天使用一種外掛cropper.js這個外掛完成幾個小demo,記錄一下,以備後續使用。 2、使用前準備 cropper該外掛有兩
字串轉換成整數(atoi)函式的具體實現
程式碼如下: #include "stdio.h" int Atoi(char* str) {int sum=0;while(*str!='\0'){if (*str>='0' && *str<='9'){sum=sum*10+*str-'0';
多媒體封裝格式學習:H264封裝成FLV(一)
搞了好幾天的FLV封裝,話說封裝真是個苦力活,有時候思路不是很清晰的時候,真心有點亂。 網上關於H264封裝成FLV的文件,都分析的很詳細了,但是有幾個點沒有考慮到,一會在下面我會一一跟大家說明。圖什麼的我就不畫了,網上一搜應該有很多,那
CSS3繪製不規則圖形(一)
由於近期的專案中出現了不規則的邊框和圖形, 所以只好提前先溫習一下,以前收集的一些CSS3繪製的圖形。。。樣式繪製的圖形比圖片的效能要好,體驗更佳。廢話不多說,我們直接看效果:1、三角形系列(三角形、倒三角、左三角、右三角、左上三角、右上三角、左下三角、右下三角) 主要
WPF 的 MVVM 的分析理解(一)
第三步:新增執行動作和“INotifyPropertyChanged”介面 應用程式不僅僅只是有 textboxs 和 labels, 同樣還需要執行動作,比如按鈕,滑鼠事件等。 因此讓我們新增一個按鈕來看看如何把 MVVM 類應用起來。 我們在同樣的 UI 上添加了一個‘Calculate tax’按鈕,
記錄使用echarts的graph型別繪製流程圖全過程(一)-x,y位置的計算
先說下本次案例業務需求,輸入2個節點,獲取資料後繪製出2個節點間的路徑,之前使用的是網狀圖,但是網狀圖的效果不佳,需要轉換成流程圖的模式: 那麼如何在不修改資料的情況下,實現類似效果尼? 看了下echarts的graph型別,可以實現類似的,下面是官方的例項 從例項中可以看出,難點在於節點的顯示位置x
零基礎爬取堆糖網圖片(一)
## 零基礎爬取堆糖網圖片(一) ### 全文介紹: 首先**堆糖網**是一個美圖桌布興趣社群,有大量的~~美女~~圖片 今天我們實現搜尋關鍵字爬取堆糖網上相關的美圖。 當然我們還可以實現多執行緒爬蟲,加快爬蟲爬取速度 ![](https://img2020.cnblogs.com/blog/1579925/
WPF原始碼分析系列一:剖析WPF模板機制的內部實現(一)
眾所周知,在WPF框架中,Visual類是可以提供渲染(render)支援的最頂層的類,所有視覺化元素(包括UIElement、FrameworkElment、Control等)都直接或間接繼承自Visual類。一個WPF應用的使用者介面上的所有視覺化元素一起組成了一個視覺化樹(visual tree),任何