はじめに
前回は、「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