画像に描画したテキストを変更できますか?
対象製品
LEADTOOLS 17.5J Imaging Pro
詳細
以下のように画像を元に戻す処理を実装することで可能です。
①画像をRasterImageオブジェクトに読み込んだ際に、Cloneメソッドで別のRasterImageオブジェクトにも画像を設定しておきます。
②画像にテキストを描画します。
③変更したい場合に画像を①で用意しておいた画像に戻します。
サンプルコード(VB.NET)
サンプルコード(C#)
実際の動作はSP1で追加された製品のチュートリアル「UndoDrawText」をご覧ください。
①画像をRasterImageオブジェクトに読み込んだ際に、Cloneメソッドで別のRasterImageオブジェクトにも画像を設定しておきます。
②画像にテキストを描画します。
③変更したい場合に画像を①で用意しておいた画像に戻します。
サンプルコード(VB.NET)
Private undoImage As RasterImage Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ' 画像をビューアにロードします。 Dim codecs As New RasterCodecs() RasterImageViewer1.Image = codecs.Load("..¥..¥..¥..¥..¥..¥Images¥Image1.cmp") undoImage = RasterImageViewer1.Image.Clone End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ' 画像のグラフィックコンテナを作成し、文字列を描画します。 Dim container As RasterImageGdiPlusGraphicsContainer = New RasterImageGdiPlusGraphicsContainer(RasterImageViewer1.Image) ' フォント、サイズ、色を設定します。 Dim drawFont As New Font("Meiryo", 20) Dim drawBrush As New SolidBrush(Color.White) ' 文字列を描画します。 container.Graphics.DrawString("LEADTOOLS", drawFont, drawBrush, 10, 10) RasterImageViewer1.Refresh() End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click ' 初期画像に戻します。 RasterImageViewer1.Image = undoImage undoImage = RasterImageViewer1.Image.Clone End Sub
サンプルコード(C#)
private RasterImage undoImage; private void Form1_Load(object sender, EventArgs e) { // 画像をビューアにロードします。 RasterCodecs codecs = new RasterCodecs(); rasterImageViewer1.Image = codecs.Load(@"..¥..¥..¥..¥..¥..¥Images¥Image1.cmp"); undoImage = rasterImageViewer1.Image.Clone(); } private void button1_Click(object sender, EventArgs e) { // 画像のグラフィックコンテナを作成し、文字列を描画します。 RasterImageGdiPlusGraphicsContainer container = new RasterImageGdiPlusGraphicsContainer(rasterImageViewer1.Image); // フォント、サイズ、色を設定します。 Font drawFont = new Font("Meiryo", 20); SolidBrush drawBrush = new SolidBrush(Color.White); // 文字列を描画します。 container.Graphics.DrawString("LEADTOOLS", drawFont, drawBrush, 10, 10); rasterImageViewer1.Refresh(); } private void button2_Click(object sender, EventArgs e) { // 初期画像に戻します。 rasterImageViewer1.Image = undoImage; undoImage = rasterImageViewer1.Image.Clone(); }
実際の動作はSP1で追加された製品のチュートリアル「UndoDrawText」をご覧ください。
関連情報
キーワード
HowTo 画像処理