OEM販売のご相談
ご相談ください!

PDF Tool APIサンプル集:カラーキーマスクの例

カラーキーマスクを追加したPDFを出力する
コンソールアプリケーションです

概要

引数に
1.PDFにする画像のパス
2.PDFの出力先となるファイルパス
を指定してカラーキーマスクを追加したPDFを出力する
コンソールアプリケーションです

1ページ目に「RGBの範囲指定」でカラーキーマスク指定し
範囲指定内の赤色をマスクした画像をPDFに変換して追加します
2ページ目に赤色(RGB)をカラーキーマスク指定し
マスクした画像をPDFに変換して追加しました

下の出力結果イメージでは
1P目は指定範囲内の赤色っぽい色々をマスクした画像のPDF化となり
2P目は赤色単色のみマスクした画像のPDF化となっています

コマンドラインでの実行例

sample.exe c:\test\test_09.bmp c:\sav\out.pdf

ダウンロード

出力結果イメージ

出力結果イメージ

サンプルコード

         /*
            Antenna House PDF Tool API 7.0
            C# Interface sample program
         
            概要:画像ファイルのPDF化(カラーキーマスク)
         
            Copyright 2022 Antenna House,Inc.
         */
         using System;
         using PdfTkNet;
         
         namespace sample09cs
         {
             class Program
             {
                 static void Main(string[] args)
                 {
                     Console.WriteLine("PDF Tool API V7.0 C# サンプル");
         
                     // 画像ファイルと出力ファイルの初期値を設定
                     string inFilePath = @"C:\test\test_09.bmp";
                     string outFilePath = @"C:\sav\out.pdf";
         
                     // 入力ファイル名
                     if (args.Length > 0)
                     {
                         inFilePath = args[0];
                     }
         
                     // 出力ファイル名
                     if (args.Length > 1)
                     {
                         outFilePath = args[1];
                     }
         
                     try
                     {
                         using (PtlParamInput inputImage = new PtlParamInput(inFilePath))
                         using (PtlParamOutput output = new PtlParamOutput(outFilePath))
                         using (PtlPDFDocument doc = new PtlPDFDocument())
                         using (PtlPages pages = doc.getPages())
                         {
         
                             // マスクの色をRGBの範囲指定した場合のページを追加(1ページ目)
         
                             // 画像のページ作成に使うパラメータクラス
                             using (PtlParamImagePage paramImagePage = new PtlParamImagePage())
                             {
                                 // 画像の描画に使うパラメータクラス
                                 using (PtlParamDrawImage paramDrawImage = new PtlParamDrawImage())
                                 {
                                     // 入力画像ストリームの設定
                                     paramDrawImage.setImageStream(inputImage);
         
                                     // カラーキーマスクの色をRGBの範囲指定で設定する
                                     paramDrawImage.setColorKeyMaskColor(0.9f, 1.0f, 0.0f, 0.6f, 0.0f, 0.6f);
         
                                     // ページに挿入する画像パラメーターの設定。
                                     paramImagePage.setImage(paramDrawImage);
                                 }
                                 // 用紙タイプの設定  PAPER_IMAGE_SIZE /* 画像サイズに合わせる */
                                 paramImagePage.setPaperType(PtlParamImagePage.PAPER_TYPE.PAPER_IMAGE_SIZE);
         
                                 // ページの追加
                                 pages.append(paramImagePage);
                             }
         
         
         
                             // マスクの色をRGBで指定した場合のページを追加(2ページ目)
         
                             // 画像のページ作成に使うパラメータクラス
                             using (PtlParamImagePage paramImagePage = new PtlParamImagePage())
                             {
                                 // 画像の描画に使うパラメータクラス
                                 using (PtlParamDrawImage paramDrawImage = new PtlParamDrawImage())
                                 {
                                     // 入力画像ストリームの設定
                                     paramDrawImage.setImageStream(inputImage);
         
                                     // 赤色のカラーキーマスクにする
                                     using (PtlColorDeviceRGB color = new PtlColorDeviceRGB(1.0f, 0.0f, 0.0f))
                                     {
                                         paramDrawImage.setMaskColor(color, PtlParamDrawImage.MASK_TYPE.MASK_COLORKEY);
                                     }
         
                                     // ページに挿入する画像パラメーターの設定。
                                     paramImagePage.setImage(paramDrawImage);
                                 }
                                 // 用紙タイプの設定  PAPER_IMAGE_SIZE /* 画像サイズに合わせる */
                                 paramImagePage.setPaperType(PtlParamImagePage.PAPER_TYPE.PAPER_IMAGE_SIZE);
         
                                 // ページの追加
                                 pages.append(paramImagePage);
                             }
                             doc.save(output);
         
                             Console.WriteLine("-- 完了 --");
                         }
                     }
                     catch (PtlException pex)
                     {
                         Console.WriteLine(pex.getErrorCode() + " : " + pex.getErrorMessageJP());
                         pex.Dispose();
                     }
                     catch (Exception ex)
                     {
                         Console.WriteLine(ex.Message);
                     }
                 }
             }
         }