遅い→起動時

http://d.hatena.ne.jp/pmint/

ペイントツール

SAIで線画に邪魔されずにレイヤー分けをする方法

SAIで。特に何も考えず、レイヤーも分けず、線画を自由に描いてしまってからの話。ざっくり説明すると「必要な線だけを楽に取り出せれば、あとはバケツツールで一気に塗れるじゃないの」。 1. サンプル。今日はこちらの図形を一部だけ塗ります。 2. レイヤー…

DrawImage()ではなくLockBits()でイメージのコピー

Drawing.Graphics.DrawImage()の代わりにDrawing.Bitmap.LockBits()を使って、BitmapからBitmapへイメージをコピーする例。 DrawImage()より少し早い。 LockBitsCopy.zip LCopy2()が同じサイズのBitmap間でコピーする例。 LCopy()は異なるサイズのBitmap間で…

ストローク補正のアルゴリズム

ペイント系アプリによくあるストローク補正(手振れ補正)。 タブレットペンやマウスから入力された座標のほとんどを無視することで手振れを無くし、その上でアプリが座標間を補間する機能。 補間する割合が多ければ多いほど線は滑らかでペンの動き通りには…

閉領域フィルのアルゴリズム

閉領域を塗りつぶすには、開いた領域を塗りつぶすことを考えればいい。 塗りつぶしのアルゴリズムで閉領域フィルができそう。→ SAIでもツールを組み合わせば閉領域フィル可能では? 1.元画像(白く見える部分は透明色) 2.範囲選択 3.選択範囲を別レイヤーに…

クラスを再構成したペイントツール プロトタイプ17

ビューを実装。回転、拡大縮小、スクロールが可能。 操作は左ドラッグが円の描画、右ドラッグがスクロール。 回転、拡大縮小、スクロールとそれらのリセットなどはトラックバーやボタンで。 キャンバス(右側パネル)の赤い点は回転と拡大縮小の中心を表す。…

画像の拡大・縮小、回転、そしてスクロール

ペイントツールの試作に必要だった画像の拡大・縮小、回転、スクロール処理のサンプル。 いずれの処理もGDI+の機能にあるので、それを使うだけ。 こちらがプロジェクトファイル一式。 画像の拡大・縮小、回転、スクロールサンプル WindowsApplication2154.zi…

Wintabを使わないタブレット入力

HP TouchSmart tm2tが気になる。Wintab仕様なのでtx2のように「SAIで使えない」ということもない。 けど、Wintab*1を使用しているアプリ(有名なものほぼ全て)がある一方で、タブレットPC用のインターフェイスを使用しているアプリもある。HP TouchSmart tx…

プラグインを選択できるペイントツール プロトタイプ15

d:id:pmint:20080515:p1の続き。 Paletteの実装。2種類あるパレットのうち、ツールパレットのほう。 これで1つのTabletでBrushやStrokeModifierを選択できる。 どのプラグインを有効にするかをPaletteが持つUiで決められる。 レイヤーとログ再生はそのうちに…

ストローク補正をするペイントツール プロトタイプ14

d:id:pmint:20080513:p1の続き。 プロトタイプ06以降忘れていたストローク補正を今組み込む。 筆圧は入力された座標と同じクラスの管轄なので、筆圧補間のコードも改めて。 レイヤーとログ再生はそのうちに。 ペイントツール プロトタイプ14。 WindowsApplic…

ペイントツール プロトタイプ13

d:id:pmint:20080501:p1の続き。 プロトタイプ12で再構成したクラス構造にこれまでの機能を組み込み直す。 今回は筆圧補間とブラシの切り替えを。レイヤーとログ再生はそのうちに。 ペイントツール プロトタイプ13。 WindowsApplication1.zip 起動はここから…

クラス構成を再編したペイントツール プロトタイプ12

d:id:pmint:20080408:p2の続き。 クラス構成を現時点のものに。 特にプラグインのためのクラスを追加した。 ペイントツール プロトタイプ12。 WindowsApplication1.zip 起動はここからClickOnceで。ClickOnceはIE系で。 WindowsApplication1 操作 左ドラッグ…

プロトタイプ11のブラシが重いこと

d:id:pmint:20080331:p1の続き。 ペイントツール プロトタイプ11の描画が遅いのは画像を何度も重ねて貼り付けているから。 丸い画像の貼り付けで線を描こうとすると間隔を密にしないといけないので、1ピクセルあたり100回塗ることになったりする。 「「「入…

ペイントツールのクラス紹介(4) その他のクラス

d:id:pmint:20080407:p1の続き。 どこにも分類しなかったクラスなどについて。 Paint アプリ。ペイントツール自体。 どのクラスからも呼ばれる。 呼ばれたら他のクラスを呼ぶ。 他のクラスを呼ぶだけで自身は何もしない。何の機能もない。でも全クラスの代表…

ペイントツールのクラス紹介(3) ツール系クラス

d:id:pmint:20080406:p1の続き。 一番雑多になるツール系に分類したクラスについて。 Toolのサブクラス各種 いろいろなツール。 プラグインの雛形。というわけでToolはプラグイン。 UIをパレットなどに登録。呼ばれ方によって登録の仕方をいくつか用意。 呼…

ペイントツールのクラス紹介(2) ドキュメント系クラス

d:id:pmint:20080405:p1の続き。 ドキュメント系に分類したクラスについて。 Canvas キャンバス。絵を管理する。 とは言っても絵のデータは持たない。代わりにレイヤーを1つだけ持つ。 ドキュメント系クラスの代表。絵を操作するときの窓口。 Layer レイヤー…

ペイントツールのクラス紹介(1) UI系クラス

d:id:pmint:20080404:p1の続き。 UI系に分類したクラスについて。 Formいろいろ .NET Frameworkのもの。と、そのサブクラス。 Visual Studioのフォームデザイナで作るもの。 Palette パレット。 これも.NET FrameworkにあるFormのサブクラス。色パレットはCa…

ペイントツールのクラス紹介(0)

d:id:pmint:20080331:p1の続き。 大きく分けて3つ。 UI系クラス Formいろいろ.NET Frameworkのもの。そのサブクラス。 PaletteCanvasを使用する。 ドキュメント系クラス Canvas Layer Bitmap.NET Frameworkのもの。 ツール系クラス Stroke その他、Toolのサ…

ペイントツールのクラス構成

d:id:pmint:20080331:p1の続き。 現時点でのペイントツール プロトタイプの構成。設計のプロトタイプ。 d:id:pmint:20080116:p1と比べて… ブラシとキャンバスの依存関係を逆転。 ブラシがキャンバスを呼び出すように。 キャンバスは扱われる側になるように。…

プラグインを呼び出すペイントツール11

d:id:pmint:20080329:p1の続き。 プラグイン的ブラシの実装。 .dllファイルの中のブラシを使えるように。 ペイントツール プロトタイプ11。 WindowsApplication1.zip 起動はここからClickOnceで。ClickOnceはIE系で。 WindowsApplication1 操作 左ドラッグ(…

参照レイヤーと描画レイヤーを分けたペイントツール10

d:id:pmint:20080322:p1の続き。 キャンバス上の色を反映するようなブラシのために、ブラシが参照するレイヤーと描画するレイヤーを分けた。 ペイントツール プロトタイプ10。 WindowsApplication1.zip 起動はここからClickOnceで。ClickOnceはIE系で。 Wind…

ブラシの向きが変わるペイントツール09

d:id:pmint:20080309:p1の続き。 今度はブラシパターンが回転するようにした。 タブペンの動きにあわせてブラシの向きが変わるので、こういうむらのある線になる。 ペイントツール プロトタイプ09。 WindowsApplication1.zip 起動はここからClickOnceで。Cli…

ブラシ形状を変えられるペイントツール08

d:id:pmint:20080229:p1の続き。 ブラシの形状を変えられるようにした。 データはi.pngというPNGイメージになっている。 ペイントツール プロトタイプ08。 WindowsApplication1.zip 起動はここからClickOnceで。ClickOnceはIE系で。 WindowsApplication1 操…

ログを再生するペイントツール07

d:id:pmint:20080223:p1の続き。 今回はログを記録し、再生する機能。 これを応用すればアンドゥとリドゥ、操作の記録と再生も可能に。 これに加えて、アプリの状態(スナップショット)の保存ができればさらに効率がよくなる。 ペイントツール プロトタイプ…

ペイントツールのストローク補正…の続き

d:id:pmint:20080222:p1の続き。 ストロークを補正(手ぶれ補正)する例。 適切な補正強度が分からないので、複数の補正強度で線を描いてみると? これをプロトタイプ06にしてしまう。 ペイントツール プロトタイプ06。 t24.zip 要、VB6ランタイムライブラリ…

ペイントツールのストローク補正

d:id:pmint:20080210:p2の続き。 ストロークを補正する例。 これをペイントツール プロトタイプ05にしてしまう。 ペイントツール プロトタイプ05。 t24.zip 要、VB6ランタイムライブラリ。 操作 左ドラッグ 線を描く。 概要 http://markun.cs.shinshu-u.ac.j…

画像をファイルに保存できるペイントツール04

d:id:pmint:20080206:p2の続き。 ペイントツール プロトタイプ04。 ファイルをJPEG形式で保存するようにした。 WindowsApplication1.zip 起動はここからClickOnceで。ClickOnceはIE系で。 WindowsApplication1 操作 左ドラッグ(右でも可) 線を描く。 ボタ…

レイヤー付きのペイントツール03

d:id:pmint:20080131:p1の続き。 ペイントツール プロトタイプ03。 レイヤーを追加。 WindowsApplication1.zip 起動はここからClickOnceで。ClickOnceはIE系で。 WindowsApplication1 操作 左ドラッグ(右でも可) 線を描く。 ボタン 1回押すとレイヤーを1つ…

筆圧を感知するペイントツール02

d:id:pmint:20080116:p1の続き。 ペイントツール プロトタイプ02。 WindowsApplication1.zip 筆圧対応。 ※ビルドするにはVBTablet .NETのVBTablet.dllが必要。 起動はここからClickOnceで。ClickOnceはIE系で。 WindowsApplication1 操作 左ドラッグ(右でも…

ペイントツールのアイデア、まとめています

こんなペイントツールがあったらいいな Wiki* http://wikiwiki.jp/pmint/ 「ペイントツール」という記事はWikiに移しました。 場所は以前「ウィキエンジンX」を置いていたところ。(WIKIWIKI.JP)

4クラス構成のペイントツール01

3クラス + Formコントロールで作ったペイントツール プロトタイプ01。 WindowsApplication1.zip 起動はここからClickOnceで。ClickOnceはIE系で。*1 WindowsApplication1 操作 左ドラッグ(右でも可) 線を描く 概要 プロトタイプ01のコラボレーション図。 d…