自作プログラムに拡大鏡機能やエンボスなどの特殊効果を実装する
LEADTOOLS 14.0J Raster Imaging Proを使った画像処理プログラムの作成 第2回
ダウンロード ソースファイル (19.0 KB)
ダウンロード バイナリファイル (5.7 MB)
LeadMainコントロールが持っている多彩な機能を利用して、前回解説したプログラムに、マウスで選択した範囲を中心に画像を拡大する機能、拡大鏡を使って画像の一部を拡大する機能、別フォームを使ってエンボスやポスタライズという画像処理を施す機能を追加します。
はじめに
前回は、「LEADTOOLS 14.0J Raster Imaging Pro」のコンポーネントの1つ、Lead Mainコントロールを使って、画像にズーム、モザイク、コントラスト調整、ブレを施す画像処理プログラムをVisual Basic 6.0(以降、VB 6.0)で作成しました。今回は、そのプログラムに新しく次のような機能を追加します。
- マウスで選択した範囲を中心に画像を拡大する
- 拡大鏡を使って画像の一部を拡大する
- 別フォームを使ってエンボスやポスタライズという画像処理を施す
対象読者
VB 6.0を使ってプログラムを作ったことのある人が対象です。
必要な環境
- VB 6.0が使用できる環境
- LEADTOOLS 14.0J Raster Imaging Pro
プログラム実行時の注意事項
本稿のバイナリファイルを実行する場合は、必ずセットアッププログラムを実行してください。
GUIの作成
LEADTOOLS 14.0J Raster Imaging Proのコンポーネントに含まれる、LeadMainコントロールをツールボックスに組み込んでおいてください。
後は、画面にあるVisual Basicの各コントロール(今回は標準コントロール以外のコントロールも使用しています)をツールボックスに配置しておきます。
後は、次の画面にあるVisual Basicの各コントロールをツールボックスに配置しておきます(今回は標準コントロール以外のコントロールも使用しています)。

実装する機能
今回実装する機能は次のとおりです。
- 画像のズーム(拡大)を、マウスで選択した領域を中心に行う
- 拡大鏡
- エンボス
- ポスタライズ
これらは、いずれもLeadMainコントロールのメソッドで行うことができます。


フォーム変更とメニューの追加
フォームの[ズーム]パネルに、チェックボックスを1つ配置します。
また、次のメニューを追加しておきます。
| メニュー名 | オブジェクト名 |
| 拡大鏡(&M) | IDMMag |
| 200% | IDM200 |
| 300% | IDM300 |
| 400% | IDM400 |
| - | sepa |
| キャンセル | DMCX |
| 特殊効果(&S) | DMEffect |
| エンボス | DMEmboss |
| ポスタライズ | IDMPoster |
そして、[拡大鏡(&M)]と[特殊効果(&S)]の2つだけ、[有効]のチェックを外しておきます。
変数の修正と追加
このプログラムでは、エンボスとポスタライズを別のフォームForm2で画像に施すようにします。そのため、読み込んだ画像のファイル名を格納する変数fnameを、Form2からも使えるようにDimからPublicに変更します。
また、Form2はエンボスとポスタライズの2つの特殊効果で共有して使用するため、どちらのメニューが選ばれたのかを判別するString型変数flagを、同じくPublicで宣言します。
'Dimから Publicに変更 Public fname As String '変数を追加 Public flag As String
選択した範囲を中心に拡大する機能
前回組み込んだズーム機能は、画像全体を拡大・縮小しました。今度は、マウスで選択した部分を中心に画像を拡大する機能を組み込んでみます。
この機能は、LeadMainコントロールの「ラバーバンド」という機能と、ZoomToRectメソッドを使用します。
ラバーバンド(RubberBand)というのは、画像の上でマウスをドラッグした範囲を矩形で表示する機能です。LeadMainコントロールは、このラバーバンドを自動で作成する機能を持っており、選択範囲の座標位置を自動的に取得することができます。
それでは、ラバーバンドで選択された部分を中心に拡大するようにします。
まず、LeadMainコントロールのMouseDownイベントプロシージャを作成します。そして、その中でAutoRubberBandプロパティをTrueにします。これで、画像の中でラバーバンドを使うことができるようになります。
Private Sub LEAD1_MouseDown(Button As Integer, Shift As Integer, _ x As Single, y As Single) With LEAD1 .AutoRubberBand = True .MousePointer = 2 End With End Sub
この記事は参考になりましたか?
- ComponentZine(LEADTOOLS)連載記事一覧
- この記事の著者
-
瀬戸 遥(セト ハルカ)
8ビットコンピュータの時代からBASICを使い、C言語を独習で学びWindows 3.1のフリーソフトを作成、NiftyServeのフォーラムなどで配布。Excel VBAとVisual Basic関連の解説書を中心に現在まで40冊以上の書籍を出版。近著に、「ExcelユーザーのためのAccess再...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア




