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

ダウンロード

出力結果イメージ

出力結果イメージ

サンプルコード

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);
            }
        }
    }
}