2012-03-12 20 views
3

私はWP7の開発に新しく、どのように画像にテキストを書き込むことができますか?WP7の画像にテキストを書き込む

まず可能ですか?以下に示すように

GDIのように、我々は、画像にテキストを書き込むことができます。

Dim pth As New GraphicsPath() 
pth.AddString(txtSample.Text, New FontFamily(DropFont.SelectedValue), 0, Integer.Parse(DropFontSize.SelectedValue), New Point(left, top), StringFormat.GenericTypographic) 

しかし、WP7に、私はGDIが、私はこれをどのように行うことができますsupported.Soされていないことを知るようになったと?

編集:

私はpictures hubから画像を選択するか、cameraを使用して写真を撮ると、イメージコントロールに表示し、いくつかのテキストを書き、別の名前で戻って保存する必要があります。

ご提案は大歓迎です。

+0

画像にテキストを重ねたり、画像にテキストを書き込んだりして保存する(つまり、デバイスに保存されている新しいJpegを作成するなど...) –

+0

@ willmel-overlaying私は書く必要があるテキスト – coder

+0

http://stackoverflow.com/questions/7481436/drawstring-on-wp7 –

答えて

4

WriteableBitmapを取得して操作する必要があります。

Renderメソッドを使用してUIElementを追加するか、またはPixelsアレイを使用してピクセルを直接操作できます。

あなたはおそらく唯一のビットマップにTextBlock要素を追加する必要がありますが、あなたはピクセル操作興味があるならば、ここでそれがどのように行われるかである。

私はピクセル操作を持つ唯一の経験を持っています。これはまっすぐ進むわけではありませんが、y * width + xを翻訳して1次元配列のピクセル(x, y)にアクセスします。

値は、argb32と呼ばれる形式、つまりアルファチャンネル(不透明度)、赤、緑、青の値です。定期ColorとARGB32下記間の翻訳:

int ColorToInt(Color c) 
    { 
     var argb32 = c.A << 24 | c.R << 16 | c.G << 8 | c.B; 
     return argb32; 
    } 

    Color IntToColor(int argb32) 
    { 
     const int mask = 0x000000FF; 
     byte a, r, g, b; 
     a = (byte)((argb32 >> 24) & mask); 
     r = (byte)((argb32 >> 16) & mask); 
     g = (byte)((argb32 >> 8) & mask); 
     b = (byte)(argb32 & mask); 
     return Color.FromArgb(a, r, g, b); 
    } 
2

なぜあなたはそれらを画像に埋め込む必要がありますか?

あなたは単にのようなグリッドにあなたの画像やテキストを配置することができます:あなたはそれを後で使用できるように画像を変更することなく、テキストを使用して画像をオーバーレイします

<grid> 
    <image source="YourImageSource"/> 
    <TextBlock Text="Your Text Here"/> 
</grid> 

。また、バインドなどの自由度も増し、異なるものにバインドしたり、独立して入れ替えたりすることができます。

XNAを使用している場合、これはfaesterと同じ方法でTexture2Dのピクセルを操作して行うこともできます。

+0

@ Runewake2-私はこの答えを以前に見ましたが、それはテキストだけを表示したくないので、それは悪い考えです。テキストの位置を変更するなどの操作。グリッド線量は私の目的に合っています。 – coder

+0

@DotNetterテキストの位置を変更する必要がある場合は、TextBlockのマージンを必要なオフセット(グリッドの位置を基準にします)に設定することで行うことができます。これはあなたにテキストの完全な自由を与えるはずです。 また、テキストを移動したい場合、画像を再生成するときにテキストがテキストに埋め込まれるという別の考え方を使用したくない場合は、遅いです...本当に遅いです。簡単のため、 – Runewake2

+0

+1。 – Robaticus

関連する問題