前から気になっていたのだが範囲選択で1ドット単位の細かい範囲指定をやろうとすると少しくせがあって使いにくかった。
例えば次の1ドットの黒枠の画像を、黒枠を含めてピッタリとキャプチャしたいとする。
SimpleCapの範囲選択を起動しラバーバンドの線を黒枠上にぴったり重ねてキャプチャする。
すると左と下の黒枠はキャプチャに含まれるのだが、右と上の黒枠は含まれない。
右と上も含めるにはラバーバンドを右上に1ドットづつ大きめに指定する必要があった。
これでは感覚的ではないのでキャプチャ対象をラーババンドの線上を含む範囲とするように微調整した。
描画する時に右と上の線が1ドット程度内側に表示すれば良いので、描画枠の位置と範囲を調整してみた。
NSRect d_rect = _rect;
d_rect.origin.y += 0.1;
d_rect.size.height -= 0.2;
d_rect.origin.x += 0.1;
d_rect.size.width -= 0.2;
[path appendBezierPathWithRect:d_rect];
さて試してみる。黒枠上にラバーバンドを重ねてパチリ。
うまくいった。