你大概知道System.Drawing,它是一个执行图形相关任务的流行的API,同时它也不属于.NET Core的一部分。最初是把.NET Core作为云端框架设计的,它不包含非云端相关API。另一方面,.NET Core是跨平台框架,它不包含任何操作系统特定的API,例如Windows上的Active Directory活动目录 。再者,.NET Core也不包括类似,作为.NET framework一部分的,ConfigurationManager这样的诸多API。
在我之前的文章中,我已经描述了如何将这些API用于.NET Core和.NET标准应用程序。
为了实现这一点,有一个称为Windows Compatibility Pack的元包。但是,这个元包包含许多与Windows相关的API(作为包分发)。在这个元包里面有一个System.Drawing.Common包。
为了在.NET Core中使用绘图功能,请在Nuget包添加引用:
<PackageReference Include="System.Drawing.Common" Version="4.5.0-preview1-**" >
在这之后,你将可以运行例如以下的代码。
int x = 100; Image image = new Bitmap(2000, 1024); Graphics graph = Graphics.FromImage(image); graph.Clear(Color.Azure); Pen pen = new Pen(Brushes.Black); graph.DrawLines(pen, new Point[] { new Point(10,10), new Point(800, 900) }); graph.DrawString("Hello drawing from .NET Core :)", new Font(new FontFamily("DecoType Thuluth"), 20, FontStyle.Bold), Brushes.Blue, new PointF(150, 90)); image.Save("graph.jpeg", System.Drawing.Imaging.ImageFormat.Png);
在你运行上述代码之后,你将看到如下图片:
下面是当前已经支持的字体列表:
AGA Arabesque AGA Arabesque Desktop Agency FB Akhbar MT Algerian Arial Arial Black Arial Narrow Arial Rounded MT Bold Bahnschrift Bahnschrift Light Bahnschrift SemiBold Bahnschrift SemiLight Baskerville Old Face Bauhaus 93 Bell MT Berlin Sans FB Berlin Sans FB Demi Bernard MT Condensed Blackadder ITC Bodoni MT Bodoni MT Black Bodoni MT Condensed Bodoni MT Poster Compressed Bold Italic Art Book Antiqua Bookman Old Style Bookshelf Symbol 7 Bradley Hand ITC Britannic Bold Broadway Brush Script MT Calibri Calibri Light Californian FB Calisto MT Cambria Cambria Math Candara Castellar Centaur Century Century Gothic Century Schoolbook Chiller Colonna MT Comic Sans MS Consolas Constantia Cooper Black Copperplate Gothic Bold Copperplate Gothic Light Corbel Courier New Curlz MT DecoType Naskh DecoType Naskh Extensions DecoType Naskh Special DecoType Naskh Swashes DecoType Naskh Variants DecoType Thuluth Diwani Bent Diwani Letter Diwani Outline Shaded Diwani Simple Outline Diwani Simple Outline 2 Diwani Simple Striped Dosis Dubai Dubai Light Dubai Medium Ebrima Edwardian Script ITC Elephant Engravers MT Eras Bold ITC Eras Demi ITC Eras Light ITC Eras Medium ITC Farsi Simple Bold Farsi Simple Outline Felix Titling Footlight MT Light Forte Franklin Gothic Book Franklin Gothic Demi Franklin Gothic Demi Cond Franklin Gothic Heavy Franklin Gothic Medium Franklin Gothic Medium Cond Freestyle Script French Script MT FZShuTi FZYaoTi Gabriola Gadugi Garamond Georgia Gigi Gill Sans MT Gill Sans MT Condensed Gill Sans MT Ext Condensed Bold Gill Sans Ultra Bold Gill Sans Ultra Bold Condensed Gloucester MT Extra Condensed Goudy Old Style Goudy Stout Haettenschweiler Harlow Solid Italic Harrington High Tower Text HoloLens MDL2 Assets Impact Imprint MT Shadow Informal Roman Italic Outline Art Javanese Text Jokerman Juice ITC Kristen ITC Kufi Extended Outline Kufi Outline Shaded Kunstler Script Lato Lato Black Led Italic Font Leelawadee UI Leelawadee UI Semilight LiSu Lucida Bright Lucida Calligraphy Lucida Console Lucida Fax Lucida Handwriting Lucida Sans Lucida Sans Typewriter Lucida Sans Unicode Magneto Maiandra GD Malgun Gothic Malgun Gothic Semilight Marlett Matura MT Script Capitals Microsoft Himalaya Microsoft JhengHei Microsoft JhengHei Light Microsoft JhengHei UI Microsoft JhengHei UI Light Microsoft New Tai Lue Microsoft Office Preview Font Microsoft PhagsPa Microsoft Sans Serif Microsoft Tai Le Microsoft YaHei Microsoft YaHei Light Microsoft YaHei UI Microsoft YaHei UI Light Microsoft Yi Baiti MingLiU-ExtB MingLiU_HKSCS-ExtB Mistral Modern No. 20 Mongolian Baiti Monotype Corsiva Monotype Koufi Montserrat MS Gothic MS Office Symbol (de-de) Bold MS Office Symbol (de-de) Light MS Office Symbol Extralight MS Office Symbol Regular MS Office Symbol Semibold MS Office Symbol Semilight MS Outlook MS PGothic MS Reference Sans Serif MS Reference Specialty MS UI Gothic MT Extra Mudir MT MV Boli Myanmar Text Niagara Engraved Niagara Solid Nirmala UI Nirmala UI Semilight NSimSun OCR A Extended Old Antic Bold Old Antic Decorative Old Antic Outline Old Antic Outline Shaded Old English Text MT Onyx Oswald Palace Script MT Palatino Linotype Papyrus Parchment Perpetua Perpetua Titling MT Playbill PMingLiU-ExtB Poor Richard Pristina PT Bold Arch PT Bold Broken PT Bold Dusky PT Bold Heading PT Bold Mirror PT Bold Stars PT Separated Baloon PT Simple Bold Ruled Rage Italic Ravie Rockwell Rockwell Condensed Rockwell Extra Bold Script MT Bold Segoe MDL2 Assets Segoe Print Segoe Script Segoe UI Segoe UI Black Segoe UI Emoji Segoe UI Historic Segoe UI Light Segoe UI Semibold Segoe UI Semilight Segoe UI Symbol Showcard Gothic Simple Bold Jut Out Simple Indust Outline Simple Indust Shaded Simple Outline Pat SimSun SimSun-ExtB Sitka Banner Sitka Display Sitka Heading Sitka Small Sitka Subheading Sitka Text Snap ITC Source Sans Pro Source Sans Pro Black Source Sans Pro Semibold STCaiyun Stencil STFangsong STHupo STKaiti STLiti STSong STXihei STXingkai STXinwei STZhongsong Sylfaen Symbol Tahoma Tempus Sans ITC Times New Roman Trebuchet MS Tw Cen MT Tw Cen MT Condensed Tw Cen MT Condensed Extra Bold Verdana Viner Hand ITC Vivaldi Vladimir Script Webdings Wide Latin Wingdings Wingdings 2 Wingdings 3 YouYuan Yu Gothic Yu Gothic Light Yu Gothic Medium Yu Gothic UI Yu Gothic UI Light Yu Gothic UI Semibold Yu Gothic UI Semilight