English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
導言
生成画像に基づいて、電話番号を画像に変換する要求を実現しました。内容もシンプルで、電話番号から直接png画像を生成します。背景を透明にすることで、他の場所からの呼び出しを容易にします。有無の鋸齧は以下の一行のコードで決まります:g.TextRenderingHint= TextRenderingHint.AntiAlias;
生成画像
1、有鋸齧
2、無鋸齧
生成方法
string color = "#ff6633";" System.Drawing.Bitmap image = new System.Drawing.Bitmap(170, 35); Graphics g = Graphics.FromImage(image); try { g.TextRenderingHint= TextRenderingHint.AntiAlias; //エッジの鋸歯を除去 //ランダム生成器を生成 Random random = new Random(); //画像の背景色をクリア //g.Clear(Color.Transparent); //画像の背景のノイズラインを描画 /*for (int i = 0; i < 2; i++) { int x1 = random.Next(image.Width); int x2 = random.Next(image.Width); int y1 = random.Next(image.Height); int y2 = random.Next(image.Height); g.DrawLine(new Pen(Color.Black), x1, y1, x2, y2); } */ System.Drawing.ColorConverter colConvert = new System.Drawing.ColorConverter(); Color fontColor =(System.Drawing.Color)colConvert.ConvertFromString(color); Font font = new System.Drawing.Font("Arial", 18, System.Drawing.FontStyle.Bold); LinearGradientBrush brush = new LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height), fontColor, fontColor,LinearGradientMode.Horizontal); g.DrawString(phone, font, brush, 2, 2); //画像の前景のノイズポイントを描画 //for (int i = 0; i < 50; i++) //{ // int x = random.Next(image.Width); // int y = random.Next(image.Height); // image.SetPixel(x, y, Color.FromArgb(random.Next())); //} //画像の枠線を描画 //g.DrawRectangle(new Pen(Color.White), 0, 0, image.Width) - 1, image.Height - 1); System.IO.MemoryStream ms = new System.IO.MemoryStream(); Color backColor = image.GetPixel(1, 1); image.MakeTransparent(backColor); image.Save(ms, System.Drawing.Imaging.ImageFormat.Png); context.Response.ClearContent(); context.Response.ContentType = "image/x-png"; context.Response.BinaryWrite(ms.ToArray()); } finally { g.Dispose(); image.Dispose(); }
参考文献
http://www.blue1000.com/bkhtml/c17/2013-03/71115.htm
これで本文のすべてが終わりました。皆様の学習に役立つことを願っています。また、呐喊ガイドを多くの皆様に支持していただけると嬉しいです。
声明:本文の内容はインターネットから収集され、著作権者に帰属します。インターネットユーザーにより自発的に貢献し、自己でアップロードされました。本サイトは所有権を持ちません。人工的な編集は行われていません。また、関連する法的責任を負いません。著作権侵害を疑われる内容があれば、メールでnotice#wまでお知らせください。3codebox.com(メール送信時は、#を@に変更してください。報告を行い、関連する証拠を提供してください。一旦確認が取れましたら、本サイトは即座に侵害を疑われるコンテンツを削除します。)