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
ダウンロード
出力結果イメージ

サンプルコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 | /* 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); } } } } |