- PR -

VC#2005 でペイントのようなエディタを作りたい。

1
投稿者投稿内容
yamauchi
会議室デビュー日: 2007/05/14
投稿数: 4
投稿日時: 2007-05-14 17:59
はじめまして、いつも拝見しています。

VC#で開発をしています(初心者です)。

開発中のアプリケーションにXP標準の「ペイント」のようなビットマップ編集機能を
加えることになりました。
機能的にはシンプルで、バーコードや文字、単純な丸四角などを表示(描画)し、
また個々の要素をクリックで選択、ドラッグでエリア内で自由に移動、
などのものです。

すみませんが、どうやったら実現できるのか教えてください。
商用やフリーのライブラリ、ActiveX などを探してみたのですが、
こういったものは見つかりません(もしかしたら探し方が悪いのかも知れませんが。。)。


どうぞよろしくお願いいたします。
Tdnr_Sym
ぬし
会議室デビュー日: 2005/09/13
投稿数: 464
お住まい・勤務地: 明石・神戸
投稿日時: 2007-05-14 18:16
こんにちは。

引用:

yamauchiさんの書き込み (2007-05-14 17:59) より:
開発中のアプリケーションにXP標準の「ペイント」のようなビットマップ編集機能を
加えることになりました。
機能的にはシンプルで、バーコードや文字、単純な丸四角などを表示(描画)し、
また個々の要素をクリックで選択、ドラッグでエリア内で自由に移動、
などのものです。



バーコードは印刷するのでは?
ビットマップじゃ印刷するとき解像度的に問題がでてくるのではないでしょうか。

「ペイント」では要素のドラッグで移動はできないですよね。
#切り取った矩形は移動できますけれども

作りたいのはペイント機能ではなく、図形などのドロー機能ではないですか?



[ メッセージ編集済み 編集者: Tdnr_Sym 編集日時 2007-05-14 18:19 ]
わちゃ
大ベテラン
会議室デビュー日: 2005/12/05
投稿数: 162
お住まい・勤務地: 東京
投稿日時: 2007-05-14 20:57
どっちかっていうと、描画っていうよりも、ユーザの操作によって、
コントロールを貼った方がよさそうですね。

というわけで、こんな感じで。
# どせさんの書き込みを参考にさせてもらいました。


コード:
if( ! コントロールを動的にはりつけるスキルをもっている ) {
	visit( http://dobon.net/vb/dotnet/control/addcontrol.html );
}

make( ユーザの操作によって、コントロールをはって、四角や文字をおこう );

if( ! コントロールにイベントを割り当てるスキルをもっている ) {
	visit( http://dobon.net/vb/dotnet/beginner/eventhandle.html の実行時にイベントハンドラを追加する )
}

make( ユーザの操作によって、コントロールの大きさや、文字をかえられるようにしよう );

if( ! バーコードのコントロールはある? ) {
	buy( バーコードのコントロール ) || make( バーコードのコントロール )
}



デバッグや、例外処理はしていませんので、どこかでエラーになったりしたら、教えてください。
yamauchi
会議室デビュー日: 2007/05/14
投稿数: 4
投稿日時: 2007-05-15 09:29
お返事ありがとうございます。

引用:


バーコードは印刷するのでは?
ビットマップじゃ印刷するとき解像度的に問題がでてくるのではないでしょうか。

「ペイント」では要素のドラッグで移動はできないですよね。
#切り取った矩形は移動できますけれども

作りたいのはペイント機能ではなく、図形などのドロー機能ではないですか?

[ メッセージ編集済み 編集者: Tdnr_Sym 編集日時 2007-05-14 18:19 ]



言葉足らずでした、おっしゃるとおりです。必要な機能は図形などのドロー機能です。
組み込み機器にビットマップを送るのですが、送る画像の編集を行うというのが
開発しているPCホストアプリケーション機能の一部です。
yamauchi
会議室デビュー日: 2007/05/14
投稿数: 4
投稿日時: 2007-05-15 09:37
引用:

コード:
if( ! コントロールを動的にはりつけるスキルをもっている ) {
	visit( http://dobon.net/vb/dotnet/control/addcontrol.html );
}
make( ユーザの操作によって、コントロールをはって、四角や文字をおこう );

if( ! コントロールにイベントを割り当てるスキルをもっている ) {
	visit( http://dobon.net/vb/dotnet/beginner/eventhandle.html の実行時にイベントハンドラを追加する )
}
make( ユーザの操作によって、コントロールの大きさや、文字をかえられるようにしよう );

if( ! バーコードのコントロールはある? ) {
	buy( バーコードのコントロール ) || make( バーコードのコントロール )
}





なるほど(笑)、了解しました。

動的コントロールを作成すると同じように個々の要素を扱えばよいということでしょうか。
勉強してためしに実装してみます。
未記入
大ベテラン
会議室デビュー日: 2006/12/15
投稿数: 157
投稿日時: 2007-05-15 10:37
.Netのイメージ描画とかのコンポーネントの有名どころ
ニュートン社イメージキット
グレープシティ社LEADTOOL
バーコードのコンポーネントは過去ログにありますので探して見てください。

以前に使おうと思って調べたけどライセンスとかの問題で不採用。
同じようなのを自作したけど1ヶ月かかった_no
yamauchi
会議室デビュー日: 2007/05/14
投稿数: 4
投稿日時: 2007-05-15 13:59
どうもありがとうございます。

LEADTOOL は知っていましたが、ニュートン社は初めて知りました。
IMAGEKIT Active X のコンポーネントがCADのようなインターフェイスで考えているものに
近いです。
そんなに高額ではないし、、、と思ったのですが、

引用:

以前に使おうと思って調べたけどライセンスとかの問題で不採用。



とは、何か癖のあるライセンスだったのですか?
未記入
大ベテラン
会議室デビュー日: 2006/12/15
投稿数: 157
投稿日時: 2007-05-16 10:20
>ライセンス
普通に使うのには問題ないと思います。

VB6でImageKit6を使っていたのをC#にリプレースする時にLEADTOOL Document Imagingにしようとしたんです。(スタンプ機能とか欲しかったので)
ImageKit6は配布ライセンスが不要だったのですけどLEADTOOLは必要と言われた断念したんです。(配布端末毎に1万円で300台くらぃ配布予定だったので)

元々ImageKitで配布ライセンスが不要だったのがおかしい気がしたんですけど過去のことだったので未確認 X)
1

スキルアップ/キャリアアップ(JOB@IT)