1

画像処理を行うように設計されたサービスがあります。タスクの 1 つは、画像に文字列を重ね合わせ、プログラムに送信して表示することです。

ビットマップ画像にテキストを重ねるのに問題があります。誰か助けてもらえますか?

私は使用しようとしています:

PrivateFontCollection fonts = new PrivateFontCollection();
public static FontFamily LoadFontFamily(string fileName, out PrivateFontCollection fontCollection)
{
    fontCollection = new PrivateFontCollection();
    fontCollection.AddFontFile(HostingEnvironment.ApplicationPhysicalPath + '/' + fileName);
    return fontCollection.Families[0];
}

FontFamily family = LoadFontFamily("arial.ttf", out fonts);
Font font = new Font(family, 20);

using (Graphics g = Graphics.FromImage(bitmap))
{
    g.DrawString("text", font, new SolidBrush(GetColorFromHexString(foreground)), new PointF(10F, 10F));
}

このページの情報によると。

サービスは「Arial」が何であるかを認識していないため、明らかに失敗しています。.ttf フォントをリソースとしてサービスに含め、ビルド コンテンツを「常にコピー」に設定しました。

ありがとう!

4

2 に答える 2

0

Wcf はフォントとは関係がないため、このタグを削除することをお勧めします。

エラーはありませんが、画像に文字列が含まれていません-ロジックが無効です。

次の手順をお勧めします。

  1. このコードが通常の winforms プロジェクトで機能することを確認してください
  2. このロジックを別の dll (win フォームではなくクラス ライブラリ) にリファクタリングしてみてください。Resharper のようなツールがある場合は、必要な参照がすべて追加されます。
    この時点で、コードはすべてのケースで機能するはずです。
  3. wcf サービスを介して公開されるように戻します。
于 2013-04-07T04:39:29.977 に答える