画像処理に.netを使用してみたことがありますか?同社が最近実施したプロジェクトでは、大量の製品写真がデータベースに保存されていましたが、その際、顧客はすべての写真に会社名のラベルを付けることを要求しました。この時、どうすればいいでしょうか?
私はまだ初心者ですが、この問題にはまだ多くの解決策があり、次のように要約できます。
1. Photoshop などのグラフィック処理ソフトウェアを使用し、そのバッチ処理機能を使用してこの機能を実現しますが、データ入力担当者が追加する時間 写真を入力したい場合は、画像を加工する必要がありますが、これが非常に面倒です。入力担当者は通常、とても親切で、毎日笑顔で迎えてくれます。彼女?この計画は拒否されました。
2. .net のスムーズな画像処理を使用すると、入力担当者が写真をアップロードすると、自動的に会社のロゴが追加されます。これは、トップ 10,000 のベスト ソリューションにランクインできると思います。 2005年に。あなたの言うとおりにしてください。
System.Drawing を使用します。
System.IO を使用します。
System.Drawing.Imaging を使用する
private void AddTextToImg(string fileName,string text)
{
if(!File.Exists(MapPath(ファイル名)))
{
throw new FileNotFoundException("ファイルが存在しません!");
}
if(テキスト == 文字列.空)
{
戻る;
}
これ
についてはここでは説明しません。
ビットマップ bitmap = new Bitmap(image,image.Width,image.Height);
グラフィック g = Graphics.FromImage(bitmap);
// フォント サイズ
float textWidth = text.Length*fontSize //テキストの長さ;
//下に長方形の領域を定義し、この長方形の中に白の背景に黒のテキストを描画します
浮動小数点数RectX = 0;
浮動小数点整数 Y = 0;
float rectWidth = text.Length*(fontSize+8);
floatectHeight = fontSize+8;
// 長方形のドメインを宣言する
RectangleF textArea = new RectangleF(rectX,rectY,rectWidth,rectHeight);
Font font = new Font("宋体",fontSize);
ブラシwhiteBrush = new SolidBrush(Color.White) //テキストの描画に使用される白のブラシ
g.FillRectangle(blackBrush,rectX,rectY,rectWidth,rectHeight);
で背景を描画します
。
MemoryStream ms = new MemoryStream( );
//JPG形式で保存
bitmap.Save(ms,ImageFormat.Jpeg);
//デモンストレーションの便宜上、画像をページ上に表示します。
Response.Clear();
Response.ContentType = "画像/jpeg";
Response.BinaryWrite( ms.ToArray() )
;
bitmap.Dispose();
image.Dispose();
呼び出しは非常に簡単で、
AddTextToImg
("me.jpg","Xiao Zhi"); で
十分です。これらの関数は、Asp では非常に強力な機能だと思います。 .Net環境が完成しました!