- PR -

C#でPNGファイルを生データのまま印刷するには

投稿者投稿内容
とっちゃん
大ベテラン
会議室デビュー日: 2005/07/19
投稿数: 203
投稿日時: 2006-05-10 12:34
とっちゃんです。

引用:

ぽぴ王子さんの書き込み (2006-05-10 11:19) より:
5インチフルハイトHDDなんてものも触ってたので、最近のHDDの小ささはびっくりするばかりですけどね。100円玉ぐらいとか。
というか LaserWriter の伝説的なところは Mac 本体よりも高性能な MPU を積んで
いたことだった気がしてなんか記憶が薄れていくのを実感する今日この頃です。本体は
68020 が主流だったころに LaserWriter は 68040 を積んでいたとか。
下手なことを言うと大阪で生まれた女、じゃないボロが出そうなのでこの辺にしておきます。


そうそう、キヤノンプリンタはすっごい高性能だったんですよねぇ<PagePrinter
プリンタコマンドも洗練されてたし。。。(後発の強みw)。

い、いかん既に過去形だ...orz

今は、2cm くらいが最小だったかな。量産型は...
おいらが始めて手にしたHDDは、たしか 20M だったはず...SASI接続ですけどね。

引用:

ぽぴ王子さんの書き込み (2006-05-10 11:19) より:
ちなみに30ダイ=30代ということで、30半ばです


引用:

深山さんの書き込み (2006-05-10 09:42) より:
しかし、30代が一番脂がのってうまい時期だと思うのですが!!(マグロみたいな例えはどうかと思いますが...w )
私としては、30代に早くなりたいですね



おいらは30後半...も半ばをもうまもなく過ぎるところです(^^;

30超えるとキッツイですよ(^^;
とたんに体力が落ちる(ただし、普段からきちんと運動してれば別)とか、だんだん無理がきかなくなるとか...おじさん感覚強くなりますよ(^^;
飲みに行って昔は○○だったなんてのが、出るようになったら後は転落する一方です(なにが?)。

引用:

これまた役に立たない知識かもしれないですが(トリビアかい)、むかーしキヤノンのページ
プリンタで(たぶん他機種にもあったと思う)レイヤというものがあって、定型の罫線などを
印刷データとは別にプリンタに設定させ、差し込み印刷のようなことを実現するという方
法がありました。もっとも、そのために Windows のプリンタドライバを経由せずに直接プ
リンタへ制御コードを送りつけていた記憶が。
だからネットワークプリンタでは使えないかもしれませんし、プリンタも選ぶし、画像データ
の印刷じゃ意味がなかったりするわけですが。あぁなんか役立たずだ。



引用:

で改善出来るとのことなので、この方法で逃げようと思います。

しかし、後学のために特定少数の場合の代替手段をご存知の場合、ご教授して頂けないでしょうか?




ぽぴ王子さんも書いていますが、レイヤー(いわゆるオーバーレイ/アンダーレイ)を使うことでデータ転送量を減らせる場合があります。
今でも使える&ドライバUI上で設定できる場合もあるので、プログラムしなくても済むこともあります。

あとは、todo さんが書いている PDF を受け取れるというのも特定少数向けの対応策の一つですね。
ただし、どこでレンダリングするかによっては効果なしという場合もありますけど(^^;

他には、メーカー各社が用意している専用API(これは殆どがNDA)を使うことでより細かい制御が可能になるため、条件によっては転送量を減らせる場合もあります。

ただ、専用 API は Managed 環境からだと使えない場合があったりしますので、ものによっては C++/CLI や Managed C++ を経由したり、Unmanaged なラッパーDLLを書いたりということをしないとだめということもありえます。

さらに各社独自の実装となりますから、メーカーごとに出来ることも違うし、やり方も異なるということになります。

このあたりが、割と一般的に情報を入手できるところかな。
あとはメーカーと直接やり取りするという手段もありますが、まぁこれはよほど強いコネでもない限りは難しいでしょう(^^;

残る方法は、あまり意味がないかも知れませんが、モノクロで出力するというものです。

画像を2値化することで最大1/32までメモリーサイズが小さくなります。

モノクロプリンタのみを対象としていないかぎり何の効果もありませんが、モノクロプリンタなら効果絶大です。
ただし、色は出ませんがね(^^;

_________________
// とっちゃん(高萩 俊行)@わんくま同盟
// とっちゃん’Blog
// MS-MVP for Developer Tools - Visual C++
// WindowsInstallerの話題はhttp://www.freeml.com/msiまで
深山
ベテラン
会議室デビュー日: 2006/05/09
投稿数: 66
お住まい・勤務地: 都内某所
投稿日時: 2006-05-10 18:15
ぽぴ王子さん・とっちゃんさん返信ありがとうございます。

引用:
他には、メーカー各社が用意している専用API(これは殆どがNDA)を使うことでより細かい制御が可能になるため、条件によっては転送量を減らせる場合もあります。


確かに、メーカーが一致している環境のみ有効な手段ですね。

引用:
ただ、専用 API は Managed 環境からだと使えない場合があったりしますので、ものによっては C++/CLI や Managed C++ を経由したり、Unmanaged なラッパーDLLを書いたりということをしないとだめということもありえます。


おおー難しそうだ。現状C#で手一杯なのに

やはり今回の仕様では、根本的な印刷速度を改善は難しそうですね。

質問の内容が要点を得ていなかったため、当初のスレ名とは話がずれてしまった感がありますが、返信してくださった皆さんありがとうございました。

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