投稿者:schutzen 投稿日:2022/02/18(Fri) 08:25:03 No.2702
お世話になります。
キャンバスに描画した図形を印刷すると、出力するプリンタに依らず、96dpiくらいの解像度での出力となってしまいます。高解像度で出力できないかと、プリンタ種類で色々設定するなど試してみましたが、うまくいきません。何か良い方法がありましたらご教示お願いいたします。
投稿者:アーク 投稿日:2022/02/19(Sat) 11:04:45 No.2703
schutzenさん、こんにちは。アークです。
現行モニタの主流は96dpiだと思われます。私のもそうです。
そのモニタに表示して普通に描いた物は96dpiでのサイズになります。
一方、家庭用のプリンタの解像度は1200dpi以上あったりします。
この様なプリンタで綺麗にプリントするには300dpi以上が好ましいとされています。
画質を決めるのは画素数です。
綺麗にプリントする為には300dpで希望の縦横サイズになる画素数が必要になります。
その画素数以上で描かれた画像をプリンタの印刷サイズ指定を行う事で、
望む結果が得られます。
キャンバスを何も指定しないで使用するとモニタの解像度になるようです。
キャンバスの倍率を96/300にする事でモニタの見た目の大きさで、
必要な画素数を持った画像を描く事ができると思います。
丁度今、私もレタッチソフトを作成中ですので何かのお役に立てるかも知れません。
興味が有りましたらお立ち寄りください。
投稿者:schutzen 投稿日:2022/02/20(Sun) 21:27:05 No.2704
アークさん、こんにちは。ご返信ありがとうございます。
早速キャンバスの倍率の設定を試してみました。画面上には縮小して表示されますが、印刷プレビューでは縮小が反映されません。以下の例では、ウィンドウには3個の四角形が表示されますが、印刷プレビューでは多分1個目の四角形が途中まで表示されます。
------------------
窓というウィンドウを作る
そのタイトルは、「キャンバスの例」
窓へ用紙というキャンバスを作る
そのドッキング方向を全体に変える
窓を表示する
用紙の倍率を、0.05に変える
用紙の大きさは、{3508,2480} ーー300dpiの設定
3回値へカウントしながら繰り返す
用紙へ四角形を描く
その位置と大きさは、{0,0,1000*(4-値),800*(4-値)}
その線色を、赤に変える
その背景色を、白に変える
繰り返し終わり
用紙を更新する
テストというプリンタを作る
テストの横向きを、○に変える
テストの用紙サイズを、「A4」に変える
用紙をテストへ印刷プレビューする
------------------
キャンバスの倍率にかかわらず、96dpiのイメージがそのままプリンタの解像度に合わせて変換されるようですね。因みにプリンタのdpiを「300dpi」のような文字列で設定しても、うまく反映されません。
投稿者:アーク 投稿日:2022/02/21(Mon) 18:09:41 No.2705
schutzenさん、こんばんは。アークです。
試してみました。簡単では無さそうですね。
ファイルにも落としてみましたがそのサイズからして倍率の問題でも無さそうです。
キャンバスとかでは無く画面が保存されている感じです。
スクリーンショットに近いのかも知れません。
私もレタッチソフトの作成過程で最近になって気付いたのですが、
キャンバスやピクチャーボックス上で直接何かをしようとする事には無理が有るようです。
それ等は表示用と割り切って使うのが正しいのかも知れません。
図形自体はベクタデータですがプロッタに出力するのでも無い限り、
何処かの時点でラスタデータにする必要が有ります。
例えばA4大にプリントするので有れば3508×2480ピクセルの白紙のファイルを作成して、
別途、キャンバスに描画した図形をメモリ上で透過合成すれば期待する結果が得られそうです。
C#かドットネット型ですね。
投稿者:schutzen 投稿日:2022/02/22(Tue) 09:51:48 No.2706
アークさん、ありがとうございます。
キャンバスの印刷は、いったん希望の画素数の画像ファイルで保存して、それを外部プログラムで印刷するか、プラグインを別途作成するかしかないようですね。
ちなみに、プラグインは過去に何度か作成したことがありますが、今回のようにメモリ上のデータのポインタ(参照?)をプロデルからプラグインへ受け渡す方法をあまり理解できていないのですが、もし良かったら、ご教示いただければ幸いです。
投稿者:ゆうと 投稿日:2022/02/22(Tue) 14:18:45 No.2707
こんにちは。
ほぼ裏技のようになってしまっていますが
プリンタ1の印刷解像度は、「High:-4:-1」
などとすることで解像度を変更できます。
「印刷解像度」の設定値は、次のようなプログラムでヒントが表示されます。
-----------
(プリンタ1のPrinterSettingsのPrinterResolutionsのCount)回数に0から繰り返す
プリンタ1のPrinterSettingsのPrinterResolutions(数)を報告する
繰り返し終わり
-----------
ここの報告内容を参考に
プリンタ1の印刷解像度は、「Custom:4000:4000」
などとして印刷解像度を設定できるかと思います。
解像度について気を配っていませんでしたので、今後解りやすく直します。
お試しください。
投稿者:schutzen 投稿日:2022/02/25(Fri) 19:58:06 No.2708
ゆうとさん、ありがとうございます。
印刷解像度はうまく設定できました。また、よろしくお願いいたします。
- WebForum -