[Face-Wizard] 
 
 [Inkscape] 
 
 [Potrace] 

 [Tablet_Renew] 
 
 [MY_CGs] 
J 1:1の描画


操作面が同じ大きさなら、画面サイズmm(ドット数でない)が大きいほど、実際にペン先を動かした量に対する画面上のポインタの移動量は大きくなり、画面サイズが同じ大きさなら操作面が大きいほど、操作面でのペンの移動量:ポインタの移動量は小さくなります(要は手ぶれが反映されにくくなります)。
これをIntuos i-900:EIZO S2410W(表示幅518.4 mm)で計算してみると
304.65:518.4 = 1:1.702
つまり操作面上で10 cmペンを動かすと画面上のポインタは約17 cm動くわけです(操作エリアを縦横比保持で全て使うとき)。
同モニタでA4以下の機種では
PTZ-631W 253.985:518.4 = 1:2.041
PTZ-630 203.2:518.4 = 1:2.551(カタログ値)
※この比率はモニタ機種によって異なります
となります。この比率が2倍なら、操作面上の手ぶれも2倍になって画面上に表れる事になります(同じ人間が同じ環境で使う限りにおいて2倍)。


では、液晶タブレットのように、ペンの移動量:ポインタの移動量を1:1にするには?

タブレットの設定で表示エリアと操作エリアの座標を正確に設定すると、じつはこれが可能になります。つまり今お使いのタブレットが、バーチャル液晶タブレット(?)としてデスクトップ上に出現するような形になります。

通常、液晶タブレット以外では手元を見ずに描くことになるので、縦横比保持設定ならこんな事しても意味ないといえばないのですが・・・(ボールペン芯で手元を見ながら描くには有効かも? あと、本物の液晶タブレットと違って手の影が邪魔にならないという利点もあります)

ペン先の移動量とポインタの移動量を等しくすると言うことは、当然ながらタブレット操作面≦モニタ表示面でなければポインタが画面端に届かなくなりますが、届かない部分は他のポインティングデバイスを使用するとして(なんか詐欺みたい)、キャンバスの表示位置を限定し、用紙サイズを限定し、スクリーンdpiを正しく設定し、表示サイズを「プリントサイズ」にすれば、実際に描画した長さ(=ペンの移動量)と、ポインタの移動量(≠描画されるピクセル数)と、そのファイルを印刷したときの長さを全て同じ長さにする事ができます。
スクリーンdpiについては[解像度のお話]参照

同じ長さといっても、モニタのドットやタブレットの線数は物理的に1未満の数にならないので、端数が出れば誤差(±1 dot)も出ます。もっとも、タブレットのペン自体に同程度の読取誤差があるので、そこまでシビアになる必要はないと思いますが。

なおクイックポイントモード(の大きい側)では、前述のとおりペンの移動量が約3割増し(i-900)になって画面上に表れるため、1:1の描画には適しません(計算上は下記の式よりさらに75.56%表示エリアを縮小すれば良いので、できない事はないと思いますが試したことはありません)。


1:1の描画を行うには次の4つの方法があります。

・ 実際の用紙サイズで1:1の描画をする

・ 現在のZoom率で1:1の描画をする

・ 操作面全体を使って1:1の描画をする

仮想デスクトップをタブレットに合わせる(別窓)


仮想デスクトップを除いたいずれの場合も、くどいようですがキャンバスウィンドウを動かしたりフルスクリーンモードでZoomUPしたりするとポインタが届かなくなります。あと、現在のマッピングで慣れてしまっている方は、このマッピングをするとタブレットがとても広くなったように感じるはずです。それはつまり同じ絵を描くときに手をたくさん動かす必要があるという事で、とても疲れます(だめじゃん)。
それでも1:1の描画に拘りたいという方は以下の設定をお試しください。

以下「Photoshop」の表記はそのバージョン、タブレットバンドル版を問いません(Photoshop 5以前のものは知らないので不明)。
「Gimp」の表記はThe GIMP. Version 2.2とします。

 

■ 実際の用紙サイズで1:1の描画をしたいとき
この方法は、ペンの移動量:ポインタの移動量:印刷結果の線の長さが全て等しくなります。また見かけが1ドット以上(100*ブラシの直径/Zoom率)の線については、線幅も見たままの太さで印刷されます。
なのでペン先から伝わる感触を除けば、「紙に描く感覚」に最も近い状態で描画できます。

ただし設定した印刷解像度がスクリーンdpiと等しくない限り、ポインタの移動量:実際に描画されるピクセル数は1:1になりません。
逆に、印刷解像度とスクリーンdpiを同じ値に設定すれば(印刷dpi設定に画像ピクセル数がリンクする場合に限り)、4つの比率は全て等しくなり、その場合プリントプレビュとピクセル等倍の表示サイズも誤差0.1%以内で一致します(当然印刷結果は荒くなります)。

この設定を行うには、GimpやPhotoshopなどのプリントサイズ(用紙を原寸大でモニタに表示する)で表示可能なグラフィックスエディタが有ればベストですが、それ以外のアプリケーションでも、
用紙が原寸大になるZoom率(%) = 100*(スクリーンdpi/データ印刷解像度dpi)
または
100*((用紙1辺のミリ寸/ドットピッチ)/1辺の画像ピクセル数)
※ドットピッチ(画素ピッチ)はモニタ仕様表に記載されています。
で計算できます。
ただし、例えばSaiでは計算したZoom率に正確に合わせるのが困難なため、切りの良いZoom率の時に用紙設定のサイズで原寸大表示になるようなピクセル数をドットピッチから割り出します。
(用紙ミリ寸/ドットピッチ)*n
※n = 整数(この場合、Zoom率 = (100/n)%で原寸表示になります)

設定方法

1) グラフィックスエディタの環境設定でスクリーンdpiを正しく設定
スクリーンdpi = モニタ表示面の実測長さで1インチあたりのドット数
 = モニタ1辺の画素数 * 1/(モニタ1辺の表示寸法mm/25.4) dpi

例) 1920 * 1/(518.4/25.4) = 94.074 dpi (1/10000以下は四捨五入)

モニタ1辺の表示寸法は仕様表に「表示面積(横x縦) = 518.4x324mm」のように記載されています。ただしCRTは調整によって異なります。

2) ファイルを開く(または新規作成)
※ GimpやPhotoshopでは、用紙印刷サイズ(ミリ寸)さえ合っていれば、印刷解像度・画像ピクセル数はいくつでも良いです(下記※注)。
ただし用紙のミリ寸・用紙の向きはタブレット操作面およびモニタに収まるサイズでなければなりません。

例えばA4タブレットでA4タテの1:1描画を行うには、タブレット本体を90°回転してタブレットの向きの設定も90°にします。
その場合モニタ表示面のタテ寸も297 mm以上必要です。

3) プリントサイズで表示する
※ 特にGimpでは、ZoomDownされた結果、見かけの線幅が1ドット未満になるような描画は見えなくなります。

4) キャンバスの左上と右下の座標を得る(下記詳細)


5) タブレットの設定 → 表示エリア → 一部領域に(4)の座標を入力
※ 設定は即座に反映されてポインタの移動が(4)の範囲内に限定されます。あらかじめタブレット設定ウィンドウをキャンバスの位置と重ねておく事をオススメします。

6) タブレットの設定 → 操作エリア → 一部領域に下記の値を入力
カウント値 = 用紙印刷サイズmm * タブレットの線数line/mm
※ タブレットの線数 = 100 line/mm (Intuos3 200 line/mm)

7) 入力座標を確定後に赤枠をドラッグして好みの位置に配置します。



以上が基本的な設定方法になります。
用紙を作成する時点でちょっと今までと違った設定になるかもしれませんが、印刷解像度と画像ピクセルとモニタドットの関係を理解していれば、何も特別な事をしているわけではありません。
※注
(2)で新規作成するとき、Photoshopはプリセットの規格用紙サイズで新規作成→印刷解像度をスクリーンdpi*偶数倍にすると、非アンチエイリアスの1ピクセル線でも途切れず、綺麗に表示されます(キャッシュレベル=4以上)。

Gimpは、ZoomDownされた結果、見かけの線幅がモニタの1ドット未満になると、ブラシの種類・アンチエイリアスの有無に関わらず必ず線が途切れて表示されてしまいます(実際に途切れた線が描画されるわけではありません)。
これはモニタのドットピッチがもっと細かくならない限り解決されません。あらかじめ用紙設定に見合ったブラシを作成しておく事をおすすめします。

たとえば、用紙を(ミリ寸/ドットピッチ)*4で作成した場合、Zoom率25%で原寸大になるので、直径4ピクセルのブラシで描いてちょうど1ドット幅の線になります。
またインクペンは[補正-大きさ]と[感度-速さ]で直径が決定されます([補正-大きさ]の値を大きく、[感度-速さ]の値を小さくすると太くなります)。


■ (4)の座標を得るには、[PrintScreen]キーを押して([Alt+PrintScreen]でない)画面全体をキャプチャし、グラフィックスエディタに取り込んで定規ツールなどで座標を求める方法のほか、Gimpのように現在の表示倍率の画像に対してウィンドウをフィットできるアプリケーションではWinSpy++などのクライアント領域の座標を取得できるツールを使用すると簡単に分かります。



ウィンドウを画像にフィットした上で、ファインダアイコン をクライアント領域(キャンバス)にドラッグすると

Rectangle:   (212,157) - (1313,935) - 1101*778
Client Rect: (0,0) - (1101,778) - 1101*778
のように座標(原点はモニタ左上)が表示されます。
Rectangleは、クライアント領域の座標(左上)-(右下)-クライアント領域のw*h pixels
Client Rectはクライアント領域の座標(左上)を原点としたときの右下座標とそのw*hです。

上図は、A4横(150dpi,1754*1240 pixels)の用紙を、スクリーンdpiが94.074dpiのモニタでプリントビューした時のサイズです(参考Zoom率62.67%)。

プリントプレビューの表示サイズ(=ここではクライアント領域)は、同じ用紙サイズでもスクリーンdpiの設定によって異なります。


ウィンドウをフィットしてあれば、用紙の表示サイズとクライアント領域が等しくなる(※注)ので、Rectangleの座標をそのままタブレットの一部領域の入力欄に入力します。

このとき、タブレットの設定ウィンドウがキャンバスより外にあると、okボタンを押す前であっても、座標を入力した直後からポインタが設定ウィンドウに届かなくなります(入力した座標は即時反映され、okボタンで設定内容を上書きする)。

(※注)
WinSpy++で取得できるクライアント領域は対象アプリケーションによって異なります。
たとえばGimpは、スクロールバー・ステータスバーの表示設定に関わらず常にキャンバス領域になりますが、Photoshopはスクロールバー・ステータスバーが含まれます。

このためウィンドウモードで描画する場合は、Photoshopでは表示エリアをRectangleに限定してもスクロールバーやステータスの操作ができますが、Gimpはスクロールバーなどの操作ができなくなります(バー右下の簡易プレビュも同様です)。

これらの幅はOSの設定やgtkrcによって異なるようです。スクロールバーなどの幅や高さは、上記と同様にファインダアイコンをD&Dすれば調べられるので、それを含めた表示エリアにする場合にはキャンバス領域にそれぞれバーの幅を加える必要があります。

↓取得した座標を表示エリアに設定した例

上図は分かりづらいですが、赤枠で示される範囲がキャンバスの表示位置と一致しています(ワイドモニタを使用している場合、このダイアログのデスクトップスナップショットは縦横比が保持されません)。
ちなみにWinSpy++のウィンドウ上の数値はマウス選択でコピーできます。

表示エリアを限定すると、基本的には設定した範囲外にポインタが動かせなくなりますが、メニューバーやツールバー、あるいはウィンドウの閉じるボタンなど、設定した表示エリアの幅の範囲内であれば、それより上にある部分はポイント可能(下は不可)です。
※ Intuos3より古いモデルで、Fnボックスが操作面上部に横に並んでいる物に限られるかもしれない。Intuos i-900以外で未確認。
このほか、WinSpy++では上図のようにキャンバスとウィンドウ枠をフィットして座標を決めたあと、キャンバス座標を動かさずにウィンドウサイズだけを広げる事もできます。


WinSpy++のファインダをタイトルバーにドラッグしてから、Rectangle右にある ボタンでAdjust Window Positionを開き、(x,y)を例えば(x-30,y-30)としてマイナス方向に、(w,h)を(w+60,h+60)をとしてプラス方向に調整→Adjustボタンクリックすれば、この場合キャンバスは動かずにウィンドウ枠が上下左右に30ピクセル広がります。
※ グラフィックスエディタ側の設定で、ウィンドウサイズに合わせてZoom率が変化する設定が有効になっていたら意味ありません。
このAdjust Window PositionウィンドウをCloseしなければ、もしウィンドウをドラッグして動かしてしまってもResetボタンを押せばいつでも元の座標に戻ります。
またこれを一発で行えるツールもあります(ページ下参照)。

 

■ ウィンドウが画像にフィットしないアプリケーションや、そもそも定規がない、あるいはフルスクリーンモードでのキャンバス座標を求めるには、画面全体をキャプチャしてIrfanview32にペーストすると簡単です。

i_view32.exeのショートカットを1つ作り、プロパティでリンク先を
"C:\Program Files\IrfanView\i_view32.exe" /capture
のようにすると、デスクトップ全体を取り込んだ状態でIrfanview32を起動することもできます。



ペーストしたら、キャンバス左上付近ををドラッグ → ドラッグした範囲内でクリック → 範囲がZoomするので、キャンバス左上を原点にしてドラッグして矩形選択すると、タイトルバーの文字列が
クリップボード01 - IrfanView (Selection: 301, 188; 4 x 2; 2.000)
のように表示されます。

Selection: 301, 188;以下の文字は無視して、ここでは301, 188がキャンバス左上の座標ということになります(4 x 2; 2.000は矩形選択範囲の縦横ピクセルとその縦横比)。



取得される座標は選択範囲(の外側)の左上角になります。
このとき上図のように角に点が見えている状態がベストですが、たとえば4000%くらいZoomすると「実際の1ピクセル」の見た目の長さは1 cm位になるので、選択範囲の角がキャンバスの角から多少ずれていても近い方の座標が検出されます(Irfanview32の選択範囲は右ドラッグで移動できます)。
上図はスクリーンショットの拡大画像で、選択範囲の実線幅は常にモニタの1 dot幅になります。

左上の座標を一旦メモしておき、[Ctrl+H]で等倍に戻し、キャンバス右下でも同様に行いますが、Selection:以下の座標はあくまで選択範囲の左上座標であることにご注意ください(右下座標ではありません)。


上図の場合はキャンバスの座標は(301,188) - (1401,966)になります。

あくまで目的は「現在の表示サイズにおける画面上の座標」を取得することなので、[Alt+PrintScreen]で座標をとったり、単純に左上座標に画像ピクセル数を足算するのでは計算が合わなくなります。

 

■ (6)の数値(用紙ミリ寸をカウント値に換算)は、グラフィックスエディタで用紙プロパティを参照し、下図のようにカウント値を入力します。

↓操作エリアをA4横(297*210 mm)で左寄せ+下寄せに設定した例


左上寄せにする場合は単純に「下」と「右」に用紙ミリ寸*100(Intuos3は*200)を入力します。
(0,0) - (29700,21000)
※ スクリーンdpiやアプリケーションによっては、用紙サイズに端数が出る場合があるので、その場合は端数も込みで線数を掛算します。
どのみちタブレットの全線数を超える値には設定できませんが、画像ピクセル数でなく、用紙のミリ寸法の100倍(or 200倍)ですので間違われませんよう。

とりあえず原点座標を(0,0)にしておき、「下」(=右下のy)と「右」(=右下のx)に計算した値を入力 → 赤枠全体をドラッグして位置決めすると良いと思います。
操作エリア設定は画面上のキャンバス位置に関係なく、好きな場所に配置できます。

もうお気付きと思いますが、この設定を行うと「縦横比を保持」設定に関わらず、必ず縦横比は保持されます。

タブレット上に用紙設定と同じ大きさの紙を置き、「手元を見ながら〜クリック」でタブレットに置いた紙の左上と右下をクリックしても良いのですが(※2)、正確に設定するなら絶対値を求めた方が良いでしょう。

 

■ 印刷サイズとかどうでも良いので、現在のZoom率で1:1の描画をしたいとき
上に同じく、表示サイズmm < タブレットの操作エリアmmでなければなりません。
こちらもペンの移動量:ポインタの移動量は等しくなり、実際に描画されるピクセル数は一致しません(ピクセル等倍のZoom率なら勿論一致します)。
Photoshopのような特定のZoom率(12.5の整数倍%)の画像をキャッシュするアプリケーションでは、中途半端なZoom率(プリントプレビュ)のときよりも表示品質が良くなります。

現在のZoom率でのキャンバスの表示サイズ(見かけ上のミリ寸)を調べるには、
1辺の画像ピクセル数*ドットピッチ*Zoom率/100 =
で計算できます。
この値が操作エリアの寸法よりも大きいと、当然ながらポインタがそこに届きません。


設定方法

1) スクリーンdpiを dpmm(dot/mm)に換算
※ スクリーンdpmm = モニタ1辺の画素数 / モニタ1辺の表示寸法mm

2) ファイルを開く(または新規作成)
※ ファイルの印刷解像度dpiはいくつでも良い
ただし画像ピクセル数が大きな画像の全体を表示して描く場合はそれなりにZoom率を小さくする必要があり、非アンチエイリアス画像は描画内容が見えなくなる事があります

3) キャンバスまたは余白を含めたクライアント領域の左上と右下の座標を得る
※ フルスクリーンモードでは表示エリアの範囲が分からなくなるので、ウィンドウモード+手のひらツールの使用をオススメします。

4) タブレットの設定 → 表示エリア → 一部領域に(3)の座標を入力
※ 余白を含めたクライアント領域の座標ではその領域内で1:1になります。

5) タブレットの設定 → 操作エリア → 一部領域に下記の値を入力
(0,0) - (w,h)
w = (クライアント領域(w) / スクリーンdpmm) * 線数
h = (クライアント領域(h) / スクリーンdpmm) * 線数
線数 = 100 line/mm (Intuos3 200 line/mm)

クライアント領域が取得できない、またはフルスクリーンモードなどのときは上記と同じ要領でキャンバスの原点座標・終端座標を求めて
w = (終端座標(x) - 原点座標(x)) / スクリーンdpmm) * 線数
h = (終端座標(y) - 原点座標(y)) / スクリーンdpmm) * 線数

※ いずれの場合も端数が出る場合は四捨五入し、「縦横比を保持」を有効にします。

6) 入力座標を確定後に赤枠をドラッグして好みの位置に配置します

 

■ 操作面全体を使って1:1の描画をしたいとき
要は操作面と同じ大きさの画像を作成し、表示エリアをそれに合わせる方法です。
マッピングした操作エリアでなく、操作面全体をフルに使えます(表示エリアは同じく限定されます)。

ペンの移動量:ポインタの移動量:実際に描画されるピクセル数(ミリ換算)が全て等しくなりますが、画像ピクセルの絶対数が小さくなるので印刷向きではありません(そもそも操作エリアのサイズは用紙の規格サイズと一致しません)。

1 pixelの見かけの大きさはモニタのドットピッチによって決定されるため、ドットピッチが異なる別のモニタで同一の設定を行う事はできません。

またアプリケーションによって小数点以下の扱われ方が違うため、同じ環境でもアプリケーションによって画像ピクセル数に1 pixelの誤差が出る場合があります。


設定方法

1) 新規作成
新規作成ダイアログで画像の単位をmmにして操作面全体のサイズを入力し、印刷解像度をスクリーンdpiと同じ値に設定するだけですが、以下の式でも計算できます。

操作面全体のサイズmmを画像ピクセル数に換算

w = (操作面全体W mm / ドットピッチ mm) pixels
h = (操作面全体H mm / ドットピッチ mm) pixels
(操作面全体のサイズ = カタログの「読み取り可能範囲(WxD)」)

例) 操作面全体のサイズ = 304.8*228.6 mm
  ドットピッチ(518.4 mm/1920 dot) = 0.27 mm
  304.8/0.27 = 1128.888...端数は無効なので

w = 4*(304.8*0.27r*4r); = 1128 pixels
h = 3*(304.8*0.27r*4r); = 846 pixels

※ 印刷解像度dpiは無視し、縦横の画像ピクセル数を一致させます

2) キャンバスの左上と右下の座標を得る
Zoom率100%でキャンバスと操作面(の実測長さ)が等しくなります

3) タブレットの設定 → 表示エリア → 一部領域に(2)の座標を入力

4) タブレットの設定 → 操作エリア → 「最大」
この方法では表示エリアだけを限定するので、(3)の表示エリア設定ウィンドウを開きっ放しにしておくと(okボタンを押さない)、設定を上書きせずに一時的に使う事もできます。

また、okボタンを押した場合でも、表示エリアは上書きされますが操作エリアは上書きされません(全体から一部領域に戻すと元の座標数値が残っています)。


1辺当たりの画像ピクセル数を縦横比保持でn(整数)倍に拡大し、Zoom率を100*(1/n)%にした上で(2)のキャンバスの座標を求めれば、ポインタの移動量:実際に描画されるピクセル数は1:nになりますがペンの移動量:ポインタの移動量は等しくなり、最終的にトリミングが必要になりますが印刷向きの画像も描画できます。

またスクリーンdpiはたいてい整数にはならないため、アプリケーションによって新規作成の時点で印刷後のサイズにも僅かですが誤差が出ます。
例えば304.8*228.6 mm - 94.074dpiで新規作成すると
Gimp   304.83*228.69 mm(1129*847 pixels)
Photoshop 304.83*228.69 mm(1129*847 pixels)
Sai    304.561*228.421 mm(1128*846 pixels)
1128*(1920/518.4)r = 304.56
なので用紙サイズ的、縦横比的にはSaiの方が合っている事になりますが、ピクセル数としては長辺が1129ピクセルあった方がより近いので、タブレット側で縦横比を保持にしてあれば何も問題なく、気にしてはいけない誤差だと思います。

ちなみに(1)のw*h pixelsをキャンバスでなくウィンドウ全体のサイズにすると、ちょうど液晶タブレットでウィンドウを最大化して使うような操作ができます。
ウィンドウ全体をタブレットに合わせるには、WinSpy++のファインダをタイトルバーへドラッグ→Adjustウィンドウでw*hをリサイズ
いずれの場合でも、表示エリアを限定した結果、画像端に1 pixelポインタが届かなくなるような事は自分の環境下ではありませんでしたが、全ての環境下で言える事ではないかもしれません(ペンの読み取り誤差が±約1 dotあるのでたぶん大丈夫)。

 

■ 設定を解除する(元に戻す)には

マウスなど他のポインティングデバイスを使用してタブレットのコントロールパネルを呼び出し、表示エリアを「最大」に(または以前の設定に)戻します。このときマウスで設定ウィンドウを表示エリア内にドラッグしてから、設定を割り当てたペンで設定解除を行うようにしてください。
すでに何らかのマッピングをされている場合、操作面全体を使用する方法での操作エリアマップを除き設定は上書きされるので、変更前の座標をメモするかダイアログのスナップショットを撮っておくことをオススメします。

複数のペンやタブレット付属のマウスがある場合には、設定に使用したペン以外の物を使えば今まで通りの座標でポインティングできます。
またペンが1本しかなくても、アプリケーションごとの設定にしてあればマウスに持ち替えなくてもコントロールパネルが操作できます([Alt+Tab]でフォーカスを他のウィンドウに切り替えてから)。

 

■ 動かしてしまったウィンドウを元の位置に戻すには

キャンバスがウィンドウモードでは、うっかりウィンドウの座標を動かしてしまうと、また1からマッピングを設定し直さなければなりません。
WinSpy++のAdjustウィンドウは閉じると設定は消えてしまうので、もっと簡単にウィンドウ位置やサイズを一発で修正し、常駐せず、設定した表示エリアの座標を他のキャンバスや他のアプリケーションウィンドウで使い回せるようにできるツールをご紹介します。
UWSC (C) うみうみさん
http://www.uwsc.info/

これを使用してウィンドウ座標をファイルとして記録しておくと、万一ウィンドウをドラッグして動かしてしまっても、記録したUWSファイルを実行するだけで元の位置・ウィンドウサイズに戻してくれます。設定方法は

UWSC起動 → 記録開始 → 対象ウィンドウのタイトルバーをクリック → STOP → 保存
これを表示エリアを設定する前に記録しておくだけです。

ただし、描画内容に変更がある、またはカラーモードなどを変更すると、たいていのアプリケーションはタイトルバーの文字列が変わるので、復元すべきウィンドウを判別できなくなります(または見つけるのに時間がかかる)。
なので、UWSCで記録・保存した後、UWSファイルをメモ帳で開き、変わる恐れのない文字列を残して他を削除するとこれを回避でき、また汎用性も高くなります。

たとえば画像を開いた状態のタイトルバーが↓のようになっているとすると
(下図はGimpのタイトルバーですが、表示文字列の定義はGimpの設定によって異なります)



何か1つでも変更を加えると↓


あるいはカラーモードを変更したりレイヤー枚数が変わると↓


のようになってしまうので、このタイトルバーの文字の場合は、UWSファイルのACWで始まる行を探して(迷わずタイトルバーをクリックすれば1行目にあるはずです)
ACW(GETID("rect1248.psd-4.0 (RGB, 1 枚のレイヤー) 92X45","gdkWindowToplevel"),198,247,988,387,0)
のようになっていれば(後半に並ぶ数字はウィンドウの原点座標とウィンドウ全体のW*Hです)
ACW(GETID("rect1248.psd","gdkWindowToplevel"),198,247,988,387,0)
のように修正、そのままメモ帳で上書きokです。この場合、画像を別名で保存したり別の拡張子で保存しない限り動作します。
また単純に特定のウィンドウの位置を復元するだけなら、ACWの行を1行目に残して他は全て削除しても大丈夫です。

上の例ではファイル名が"rect1248.psd"のときに限定されるので、用紙サイズが同じファイルをいくつも作成するなら
ACW(GETID("枚のレイヤー) ","gdkWindowToplevel"),198,247,988,387,0)
のようにしておくと、表示順位が上にあるウィンドウについて動作し、対象アプリケーション(ここではGimp)で何か画像を開いてから実行すると、ファイル名に関わらず常に画面上の同じ位置、同じウィンドウサイズにする事ができます。

また画像にウィンドウ枠がフィットしていると端っこが描きづらいので、
ACW(GETID("枚のレイヤー) ","gdkWindowToplevel"),198-30,247-30,988+60,387+60,0)
とすれば、表示エリアを限定した後でも、設定したキャンバスの座標を動かさずにウィンドウを広げる(余白をつける)事ができます。上の例では上下左右に30 pixelの余白になります(用紙の余白でなくウィンドウ枠からキャンバス端までのピクセル数です)。
※余白をつけすぎるとメニューバーの「ファイル」あたりがクリックできなくなります。
また↓のようにメモ帳に書いて適当な名前で保存後、拡張子をUWSに変更してこれを実行すると、実行後に最初に左クリックしたウィンドウを、そのウィンドウタイトルや対象アプリケーションに関わらず表示エリアにフィットさせます(クライアント領域でなくウィンドウ全体がフィット。操作エリアは「最大」にします)。
//最初にクリックしたウィンドウを操作エリアと等しい大きさにリサイズ。
//UWSファイル実行後、最初の左クリックがあるまで待ち続け、
//エラーがなければ内容を実行し、常駐せずに終了します。

While True
  ifb GETKEYSTATE(VK_LBUTTON) then
    Sleep(0.1)
    id = GETID(GET_ACTIVE_WIN)
    Sleep(0.1)
    break
  endif
Wend
ACW(id, x, y, w-x, h-y, 0)

※ ACW行のx, y, w, hには、それぞれ座標を代入してください。
この場合の表示エリア(x,y) - (w,h)は、(x,yは0以上の任意の整数)
w = x+(操作面全体W mm / ドットピッチ mm); pixels
h = y+(操作面全体H mm / ドットピッチ mm); pixels
(式の最後の;(セミコロン)はWindows電卓で端数切捨てを示す)
になります。

例) A4タブレット+ドットピッチ0.27mmのモニタで表示エリアの原点座標(x,y)を(100,300)にした例
w = 100+(304.8/0.27); = 1228 pixels
h = 300+(228.6/0.27); = 1146 pixels

表示エリアダイアログに入力する値 = (100,300) - (1228,1146)
ACW行 = ACW(id, 100, 300, 1128, 846, 0)

※ 表示エリアにクライアント領域の座標を設定したい場合は、差分をそれぞれx,yにプラスし、w,hからマイナスする必要があります。ただしその値はアプリケーションによって異なります。

実行後の1クリック目に、目的のキャンバス以外をクリックしないようご注意ください。
Gimpのツールボックスなどをクリックしてしまうとツールボックスが巨大化してしまいます。

(※A4タブレット限定)
最後のACW行を少し変えて↓のようにすると、最初にクリックしたウィンドウを操作エリアサイズにリサイズして、モニタ画素数を問わずディスプレイ中央に移動します。
//A4タブレット 操作エリアサイズウィンドウ中央寄せ and 表示エリアカウント値
//ドットピッチという文字列を、今お使いのディスプレイのドットピッチ(数値)
//に置換してから使用してください。

While True
  ifb GETKEYSTATE(VK_LBUTTON) then
    Sleep(0.1)
    id = GETID(GET_ACTIVE_WIN)
    Sleep(0.1)
    break
  endif
Wend

有効幅 = 4*int((ROUND(304.8/ドットピッチ))/4)
有効高 = 3*(Val(有効幅)/4)
左 = (G_SCREEN_W-Val(有効幅))/2
上 = (G_SCREEN_H-Val(有効高))/2
Sleep(0.2)
ACW(id, 左, 上, 有効幅, 有効高, 0)
SendStr(0, "カウント値<#CR>_
上: "+上+"    下: "+Val(上+有効高)+"<#CR>_
左: "+左+"    "+"右: "+Val(左+有効幅)+"<#CR>")
exec("notepad", False, 0, 26, 480, 640)
SCKEY(GETID(" - メモ帳","Notepad"), VK_CTRL, V)


これは最後に、表示エリアダイアログに入力すべき値がメモ帳にペーストされて表示されます。
A4未満のタブレットでも304.8という数値を操作エリア有効幅に書き換えれば使用できます。

このツールを利用すると「設定した表示エリアにアプリケーションをフィットさせて起動する」といった事も可能で、もっといろいろ高度な使い方があるので試されてみては如何でしょうか。

ややアブノーマルな使い方ですが「Saiのタイトルバーとウィンドウの縁を画面外にはみ出させてウィンドウを最大化する」みたいな事もできます。


SaiやPhotoshopのフルスクリーンモードなど、ウィンドウ上のどこにでもキャンバスをパンできるアプリケーションについては、上の方法ではキャンバスの座標を復元できません。

なおUWSCは現在シェアウェアになっていますが、フリーウェア版でも上記操作は可能です。

 

 Next ⇒ 仮想デスクトップをタブレットに合わせる 








(※2)   見ていた場所に戻る
i-900の操作面(読み取り可能範囲)はカタログ値304.8 x 240.6 mm(上部のFnボックス304.8 x 12.0 mmを含むため実質304.8 x 228.6 mm)なのに対し、オーバーレイシートは実際に測ってみると310 x 231 mm(小数点以下切捨て yはFnボックスのシート(紙)用の溝下端からオーバーレイシート下端で計測)有り、このためマッピングで「2.手元を見ながら操作エリアの左上と右下をクリック」を使用してサイズぎりぎりの設定を行うと正確にマッピングできません。

またIntuos1の座標読み取り精度(ペン)はIntuos3と同じ±0.25 mmですが、Intuos1は操作面の縁から約10mm幅の範囲では精度が落ちます。

なおIntuos3は、オーバーレイシートより2まわりくらい大きい範囲でもペンがきっちり反応するので、レンズカーソルなどを使用すれば「手元を見ながら〜」でも正確にマッピング出来ると思います(未確認)。

 

 PAGE TOP▲

Oct 15 2007