PNG、GIF 画像 背景透過
いつも参考にさせていただいております。
リッチクライアントで請求書発行プログラムを作成しています。
社印をデータ化して印刷をすると透過部分が黒くなってしまいます。
過去のフォーラム(2021/03)に同様の書込みがあり、その時はWindows10アップデートの影響とありました。
xpa3.xにも同じ現象があり「MgFreeImage.dll」で対応と確認しました。
作成手順が悪いと考え試行錯誤しましたが解消されず困っています。
もし原因がお分かりでしたらご教授お願いします。
-----開発環境-----
・Windows 11 Pro 23H2
・Magic xpa Enterprise Studio 4.9 PT2
・Reports Magic Version 2.1a
-----プログラム-----
基本色定義:背景 → システム色:未選択、透過指定:チェック有
フォーム特性:GUI出力形式
イメージファイル:png(透過)、gif(透過)どちらも黒くなる
表示スタイル:2=平面
イメージスタイル:D=コントロールスケール
出力ファイル:rff、pdf両方とも同じ結果
以上、よろしくお願い致します。
-
MSGさん、
試しに、Magic以外のソフトウェアで印刷した場合はどうなりますか?
あるいは、第三者が作成したような別の透過画像をMagicで印刷した場合はどうでしょうか?
-
Tanda様
コメントありがとうございます。
いつも的確なアドバイス参考にさせていただいております。
下記、ホームページに気になる事例があったので試してみました。
https://mitchhaga.exblog.jp/32033380/
テスト画像
https://loosedrawing.com/illust/1698/
Excelに画像挿入して印刷しましたが問題なく透過しています。
文章だけでは伝わりづらいと思うので画像を添付いたします。



-
MSGさん、
そうしますと、ReportsMagic側の動きを検証してみる必要があるかもしれませんね。
試しに、ReportsMagicを使わない方法で簡単な印刷プログラムを作り、Magicの単体機能でプレビューしてみた場合はどうなるか、テストしてみてはいかがでしょうか?
-
Tanda様
ご返答ありがとうございます。
早速、リッチクライアント→オンラインに変更してみました。
プレビューで画像が変わったので出来たと思ったのですが、印刷をしたら黒くなってしまいました。
再度、確認のため「Word」で同様の作業を行いました問題なく透過されました。
オンラインに変更

印刷プレビュー

印刷アウトプット

-
MSGさん、
ということは、どこかのタイミングでアルファチャンネルに対応していないルーチンを通過しているという可能性も考えられますね。印刷プレビューでうまくいって、実際に印刷すると駄目っていうケースですと、プリンタドライバー側に原因がある可能性もありますね。他社のプリンターと他社のプリンタドライバーでテストすることは可能でしょうか?
あともう一点ですが、リッチクライアントでもReportsMagicを使わずに、PDF出力で印刷プログラムを作ることができますよ。WindowsはデフォルトでMagicからのPDF出力に対応していますので、その方法で出力したものをMagicのブラウザコントロールで表示させて印刷してみるっていうのも、障害切り分けのひとつの手段になるかと思います。
-
MSGさん、
補足ですが、PNGにはPNG-8(256色)とPNG-24/PNG-32(アルファチャンネル対応)があります。前者は1色のみ透過で、後者はアルファチャンネルが使えます。ご使用中のPNGの画像フォーマットを確認することはできますか?
-
MSGさん、
もしやと思い、ChatGPTに聞いてみましたら、面白い回答が返ってきました。
私の質問:
Word、Excelは画像の透明部分を印刷するとき、白色に変換しているのでしょうか?ChatGPTの回答:
はい、その通りです。WordやExcelでは、透明な部分を含む画像を印刷する際、通常はその部分が白色に変換されます。これは、ほとんどのプリンターや印刷用のレンダリングエンジンが透明を扱えず、背景色として白を自動的に適用するためです。
ただし、これはプリンターが白インクを使っているわけではなく、紙の色がそのまま白として表現されているだけです。そのため、たとえば色付きの紙に印刷すると、透明部分は紙の色になります。 -
Tanda様
お忙しいのに色々と調べていただきありがとうございます。
プリンター側の原因追及は盲点でしたので試してみました。
デバイスの削除して全てドライバーを入れ直しました。
・Magic リッチクライアント印刷
モノクロレーザー×
複合機(モノクロ)×
インクジェットカラー×・Magic オンライン印刷
モノクロレーザー〇
複合機(モノクロ)〇
インクジェットカラー×・Excel印刷
モノクロレーザー〇
複合機(モノクロ)〇
インクジェットカラー〇・PDF出力
リッチクライアント×
オンライン×アルファチャンネルは初めて聞いて調べるのに時間が掛かりました。
画像データに関して「32 BitsPerPixel」とありました。
ChatGPTの回答を拝見して、カラープリンターで色付き用紙を「四角形(白塗りつぶし)」を印刷したら確かに白くなりませんでした。
現時点、オンラインは透過するようになりましたが、リッチクライアントだと表示できないのでもう少し調べてみます。
-
MSGさん、
> ChatGPTの回答を拝見して、カラープリンターで色付き用紙を「四角形(白塗りつぶし)」を
> 印刷したら確かに白くなりませんでした。おもしろい検証をされましたね。とても勉強になりました。ありがとうございます!
本題の回避法なんですが、用紙が白なら背景を白で塗ってやるというのは駄目でしょうか?文字との重なりが必要ということであれば、文字側を透過の設定にするとか。。。
-
Tanda様
ご返答ありがとうございます。
早速、文字側背景を透過にして、社印背景を白に変えたところリッチクライアントでも表示できました。
文字を透過するという発想が無かったので感激しました。
もし少し頭を柔らかくして頑張りたいと思います。
お忙しい中でのコメント、誠にありがとうございました<m(__)m>
サインインしてコメントを残してください。
コメント
10件のコメント