月別アーカイブ: 2020年5月

e-na伊那谷 旅便り 第22回 大芝高原

アンテナハウス伊那支店から車で5分ほどのところに、南箕輪村唯一(多分)の観光名所、大芝高原があります。(最近、道の駅になりました。)

地元民の憩いの場として知られており、筆者も小さいころはここでよく遊んでおりました。
大芝高原内には温泉やキャンプ場、プールやテニスコートにマレットゴルフ場など数々の施設が備わっており、GWに経ヶ岳バーティカルリミット(トレイルラン)、夏には大芝高原祭り、秋にはイルミネーションフェスティバルが開催されます。
(残念ながら今年は新型コロナの影響で全て中止となってしまいました。)
今回は施設など幾つかご紹介させていただきます。

元大芝高原のマスコットのまっくんです。今は南箕輪村のマスコットにまで昇格していたのですね。第一回ゆるキャラグランプリで最下位だったというのも納得のビジュアルです。松かさがモチーフなのですが、「とうもろこしじゃないの!?」と知らない人にはよく言われます。

子供に大人気のアスレチック場です。筆者も小さいころは大好きでした。
今は全部で13のアスレチックが森の中に点在していますが、昔あった大きくて危ないやつはありませんでした。
老朽化か、それとも危険で撤去されたのか分かりませんが、少し残念です。
大人でも難しい「バランスロープ」は健在でした。(クリアできませんでした。)

ストレス解消の森林セラピーなセラピーロードです。ウォーキングやジョギング、バードウォッチングが楽しめます。
今の時期のジョギングはとても気持ちいいです。歩道にはウッドチップが敷き詰められているので脚にも優しいです。
運が良ければリスに、悪ければクマに遭遇できます。おススメです。
いい汗を掻いたら、同高原内の温泉「大芝の湯」でリフレッシュしましよう。

今回紹介できなかったものも沢山あります。

興味を持った方は下記URLより詳しい内容をどうそ。
新型コロナが落ち着きましたら是非遊びにきてください。

道の駅 大芝高原
https://oshiba-michinoeki.net
宿泊施設 大芝荘
http://oshiba.jp

e-na伊那谷 旅便り
前回:第21回 こんな学校給食はいかが?
次回:第23回 萱野高原

PDFの色指定(4) ICCプロファイル

前回、CIE1931、CIELAB、CIELUVについて触れました。
これらを活用し、様々なデバイスで色について統一的にマネジメントするための仕組みがICCプロファイルです。

International Color Consortium(ICC)[1]は、コンピュータやデジタルカメラ、スキャナ、プリンタなどのデバイス上で統一して色の管理を行うための標準化団体です。ベンダー8社を中心に1993年に設立されました。

ICCプロファイルは基準となるカラースペースの定義と、それに基づく設定の記述によって構成されています。基準となるカラースペースはプロファイル接続空間(PCS)と呼ばれます。これは、CIEXYZやCIELABによるカラースペースに制限を加え、プロファイルに使用しやすいようにしたものです。PCSという共通のカラースペースがあることで、あるデバイスでの色の記述を、そのデバイスのプロファイルを使いPCSの色表現に変換し、それを別のデバイスプロファイルを使って別のデバイス上での色の記述に変換できます。またICCプロファイルには、色の記述をPCSでの色表現に変換するための共通のインターフェースという役割があります。
このインターフェースは、先に挙げたPCSとPCSに色の記述を変換する設定の書式を厳密に定めたもので、構造としては、ヘッダ部、タグのテーブル、タグに紐付いたデータで構成されます。変換アルゴリズムなどの実装については定めていません。

PCSからデバイスの色に変換する際に、そのままではデバイスで対応できない色が含まれる場合があります。そのときに対応していない色をどの色にマッピングするかを定める「レンダリングインテント」と呼ばれるものをICCプロファイルに用意できます。

caption: PCS

ICCプロファイルは、デバイスによって幾つかの種類に分けられます。主に次の3つです。

  • スキャナ、デジタルカメラなどのための入力プロファイル
  •  ディスプレイなどでの表示のためのディスプレイプロファイル
  •  プリンタなどのための出力プロファイル

他の種類もあります。

  • 画像形式での流通のためのカラースペースコンバージョンプロファイル
  • 特定の色のための命名色プロファイル
  • 追加の補正情報を埋め込むためのアブストラクトプロファイル

さらに、プロファイルを組み合わせて1つにした、デバイスリンクプロファイルがあります。

相互に色を変換するための共通の書式であるICCプロファイルについて概要を説明しました。
次回はようやく、PDFのCIEベースカラースペースについての回になる予定です。

[1] http://www.color.org/abouticc.xalter

PDFの色指定について
PDFの色指定の概要・デバイスカラースペース
PDFの色指定について(2)
色とは何か
PDFの色指定 (3)CIE1931 CIELuv CIELAB
CIEカラースペース
PDEの色指定(5)CIEベースカラースペース
PDFのCIEベースカラースペース格納形式と使用のされ方の概略

.NET Framework アプリケーションからPDF印刷

以前の記事でご紹介しましたが、「PDF Viewer SDK」を使うとPDFファイルを印刷するプログラムを開発することができます。

PDF Viewer SDKでPDF自動印刷
PDF Viewer SDKでPDF自動印刷(その2)

PDF Viewer SDK」ではC/C++言語APIの動的ライブラリ(DLL)をご用意しております。

しかしながら.NET Frameworkで開発されるお客様も多いようで、.NETからPDFファイルを印刷したい、という声もよく伺います。幸い.NET Framework にはDLLのネイティブコードを呼び出すプラットフォーム呼び出しP/Invoke)の機能があります。P/Invokeを利用すれば.NET Framework からPDFを印刷することができます。「PDF Viewer SDK」には、このようなサンプルコード “ApiPInvokeCSharp” を添付しておりますのでご活用ください。

ここで一点注意があります。このサンプルではWindowsフォームアプリケーションで標準的に利用されるSystem.Drawing.Printing名前空間を使用します。System.Drawing.PrintingWindowsフォームアプリケーション向けの印刷関連のサービスをまとめたもので、印刷ダイアログを表示したり、印刷先のデバイスを取得したりするのに利用します。

通常のデスクトップアプリケーションではこの方法で問題ないのですが、残念ながらSystem.Drawing.Printing 名前空間はサービスやASP.NETでの動作がサポートされていません。

 System.Drawing.Printing 名前空間

リンク先には、サービスやASP.NETから利用した場合動作が不安定になったりパフォーマンスの低下や実行時例外が発生するかもしれない、と書いてあります。これはWPFで利用される System.Printing名前空間も同様です。

サービスからサイレント印刷を行うようなプログラムを開発する場合は、この方法では問題があります。この場合にはちょっとしたコマンドラインをC/C++ APIで開発して.NETから呼び出す、もしくは、COMコンポーネントとして印刷機能を用意して呼び出すなどの工夫が必要になります。「PDF Viewer SDK」にも印刷コマンドラインのサンプルコード“ApiPdfPrint” を添付しています。こちらも併せてご活用ください。

以上、.NET FrameworkからPDF印刷する方法と注意点のご紹介でした。

詳しい機能についてぜひ製品ページをご覧ください。

製品ページ:
https://www.antenna.co.jp/pdfviewersdk/
評価版ダウンロードページ:
https://www.antenna.co.jp/pdfviewersdk/trial.html


PDF Viewer SDK


e-na伊那谷 旅便り 第21回 こんな学校給食はいかが?

学校給食って懐かしくないですか?
今回は長野県ならではの学校給食を紹介します。

1.キムタク御飯

テレビ等でも紹介されたことがあるのでご存知の方もいるかと思いますが、キムチとたくあんの混ぜ御飯です。
組み合わせが秀逸で、子供から大人まで多くの年齢層に人気があります。

2.塩丸イカのサラダ

長野県人にはおなじみの「柔らかさの中にある歯ごたえ」と「絶妙な塩気」で人気の塩丸イカを使ったサラダです。
塩丸イカ自体は塩気が強すぎるため、一度塩抜きしてから調理します。

3.ニジマスの円揚げ(つぶらあげ)

冷たい水を好むニジマスは渓流の多い長野県で古くより食されてきた魚です。
油で揚げるとクルっと丸くなるので「円揚げ」。
骨まで丸ごと食べられるので子供にも大人気です。

実際に給食で出される料理の写真は撮れないので家で作ってしまいました。

キャベツの味噌汁も付けて。。。。いただきます!

長野県は「緊急事態宣言」が解除され学校も再開されつつありますが、授業をフルに受けられない短縮授業となっている学校がまだ多くあります。
美味しい給食が食べらる日常へ1日でも早く戻ると良いですね。


e-na伊那谷 旅便り
前回:第20回 古代米「白毛餅」
次回:第22回 大芝高原

暗号化されていてもPDFを開くときはご用心

暗号化されているPDFが送られてきてそのパスワードを知っていたら、作成者を信用して PDFを開いた後についつい不用心にPDFViewerの警告を無視していろいろと危ない操作をしてしまうかもしれません。しかし、2019年に、PDFのパスワードを知らないでもパスワードを変えずにPDFを色々と改変できてしまう脆弱性が発見されました(https://pdf-insecurity.org/index.html)

まだ脆弱性に対応していないPDFViewerもあるかもしれないので、外部からもらったファイルには細心の注意を払いましょう。


Visual Basic で相対パスの設定は、オススメできない

最近の弊社では、Visual Basic を用いた開発を始めました。

Visual Basic は、Microsoftが開発した言語の中で長い歴史持った開発言語で、
プログラマー初心者でも、安定性のあるGUIアプリケーションを早く開発できることで高い評価を受けています。

ですが、そんな Visual Basic にも欠点があり、
いざリポジトリを整理しようとなったとき、C++/C# のように相対パスの設定がVisual Studio上でできないことです。

そこで今回、ご紹介するのは Visual Basic で相対パスを設定する方法になります。

本題に入る前に、先にお伝えしたいことがあります。

Visual Basic で相対パス設定を行うことは、非常に手間がかかる作業となり業務においても支障が出る恐れがありますので、
正直オススメできません。
あくまで、開発言語の知識を深めるために実施してください。

まず、Visual Studio を立ち上げ、新規でVBのプロジェクトを作成してください。(今回は、Windows フォームアプリケーションを選択 を使用します。)

作成したら上書き保存をして一度保存します。

保存が完了したら、プロジェクトを作成したパスに移動し、作成したソースコード「UserControl1」と「My Project」を切り取ります。

次に、ソースコードを配置するフォルダを任意で作成し、貼り付けます。(今回は、「\TestPath\SourceTest」というフォルダに配置します。)

次に先ほど作成したプロジェクトファイル「TestPath.vbproj」をエディタで開き、移動したソースコードの読み込み先を手作業で変更していきます。

<Compile Include="..\SourceTest\UserControl1.vb">
<Compile Include="..\SourceTest\UserControl1.Designer.vb">
<EmbeddedResource Include="..\SourceTest\UserControl1.resx">

そして、読み込み先の変更が完了したら、ソリューションファイルを開きます。

すると、Visual Studio が開きソリューションエクスプローラーの「UserControl1」を確認すると、新規作成時のアイコンから表示が変わっており、相対パスで読み込まれていることが確認できます。

このように Visual Basicで相対パスを設定は、プロジェクトファイル内で設定しているファイルの読み込み先のパスを変更することで相対パスの設定が可能です。

しかし、Visual Studio 上でのパスの編集ができず、ソースコードの直接編集およびプロジェクトファイルの再読み込みも必要となるため、面倒な作業が増えます。

そのため、Visual Basic で開発する際は、プロジェクトファイルを直接編集することが無いよう、プロジェクトファイル直下にソースコードを置くようにし、いつでもソリューションエクスプローラー上でソースコードを整理できる状態にしておくことをオススメします。

最後に余談ですが、Microsoft の開発者ブログより、.NET 5.0 の実装完了後、以降 Visual Basic に新しい機能は追加しないという事が発表されました。
新機能の追加が今後ないとはいえ、サポート自体はしっかり行うとのこともブログで伝えておりますが、
これを機に、 Visual Basic から今後も新機能が開発される C# に切り換えるデベロッパーが徐々に増えていくと思います。

Visual Basic support planned for .NET 5.0 (Microsoft の開発者ブログ)
https://devblogs.microsoft.com/vbteam/visual-basic-support-planned-for-net-5-0/


『アウトライナー3』コマンドライン(その2)

『アウトライナー3』が、5月15日にリリースされました。最新バージョンは、製品の64bit化、リンク注釈の編集機能追加、などが行われています。旧バージョンからある、しおりの編集機能、しおり外部ファイルの書き出し、読み込み機能と同じように、リンク注釈も、リンク注釈外部ファイルの書き出し、読み込み機能があります。

アウトライナーはコマンドラインからも実行できます。 製品のインストールフォルダに OutlinerCmd.exe が存在します。これがコマンドライン版の実行ファイルになります。前回はコマンドラインでの[リンク注釈外部ファイルの書き出し]について説明しました。今回は[リンク注釈外部ファイルの読み込み]について説明してみたいと思います。

[リンク注釈外部ファイルの読み込み]

この機能は、入力PDFに、リンク注釈外部ファイルのリンク注釈を設定した後、保存PDFとして出力します。リンク注釈外部ファイルの読み込みで使用する引数は次の通りです。

  • /D
    入力PDFファイルのパスを指定します。
  • /K
    入力PDFにパスワードが設定されている場合、この引数で指定します。
  • /N
    読み込む、リンク注釈外部ファイルのパスを指定します。
    形式には XML, CSV, JSON があり、拡張子で判定します。

    • XML形式の拡張子 “.xml”
    • CSV形式の拡張子 “.csv”
    • JSON形式の拡張子 “.json”
  • /O
    保存PDFファイルのパスを指定します。
    入力PDFに、リンク注釈を設定した状態で、別のPDFファイルとして保存します。
    入力PDFに、既存のリンク注釈があれば、削除した後、リンク注釈を設定します。

呼び出し例は次の通りです。

  • OutlinerCmd.exe /D input.pdf /O output.pdf /N input.xml
    • /D input.pdf : input.pdf を読み込みます。
    • /O output.pdf : リンク注釈を設定した output.pdf を書き出します。
    • /N input.xml : リンク注釈外部ファイルのパスはinput.xmlで、形式は XML です。
  • OutlinerCmd.exe /D input.pdf /K password /O output.pdf /N input.xml
    • /D input.pdf : input.pdf を読み込みます。
    • /K password : input.pdf のパスワードを指定します。
    • /O output.pdf : リンク注釈を設定した output.pdf を書き出します。
    • /N input.xml : リンク注釈外部ファイルのパスはinput.xmlで、形式は XML です。

複数のPDFへ同じリンク注釈を設定することが可能です。

製品に関するご質問は
outliner@antenna.co.jp(アウトライナーサポート) まで、お気軽にお問い合わせください。

評価版のお申込 評価版のお申し込み

Webページ http://www.antenna.co.jp/mpd/

関連記事

『アウトライナー3』コマンドライン(その1)



『アウトライナー3』コマンドライン(その1)

『アウトライナー3』が、5月15日にリリースされました。最新バージョンは、製品の64bit化、リンク注釈の編集機能追加、などが行われています。旧バージョンからある、しおりの編集機能、しおり外部ファイルの書き出し、読み込み機能と同じように、リンク注釈も、リンク注釈外部ファイルの書き出し、読み込み機能があります。

アウトライナーはコマンドラインからも実行できます。 製品のインストールフォルダに OutlinerCmd.exe が存在します。これがコマンドライン版の実行ファイルになります。今回は[リンク注釈外部ファイルの書き出し]について説明してみたいと思います。

[リンク注釈外部ファイルの書き出し]

リンク注釈外部ファイルの書き出しで使用する引数は次の通りです。

  • /D
    入力PDFファイルのパスを指定します。
  • /K
    入力PDFにパスワードが設定されている場合、この引数で指定します。
  • /L
    保存するリンク注釈外部ファイルの形式を指定します。
    形式には3種類あります。

    • @XML 結果をXML形式で出力します。
    • @CSV 結果をCSV形式で出力します。
    • @JSON 結果をJSON形式で出力します。
  • /O
    保存するリンク注釈外部ファイルのパスを指定します。

呼び出し例は次の通りです。

  • OutlinerCmd.exe /D input.pdf /O output.xml /L @XML
    • /D input.pdf : input.pdf を解析します。
    • /O output.xml : 解析結果を output.xml へ書き出します。
    • /L @XML : 解析結果の保存形式は XML です。
  • OutlinerCmd.exe /D input.pdf /K password /O output.csv /L @CSV
    • /D input.pdf : input.pdf を解析します。
    • /K password : input.pdf のパスワードを指定します。
    • /O output.csv : 解析結果を output.csv へ書き出します。
    • /A @CSV : 解析結果の保存形式は CSV です。

次回は書き出した、リンク注釈外部ファイルを使って、PDFにリンク注釈を設定する方法について説明してみたいと思います。

製品に関するご質問は
outliner@antenna.co.jp(アウトライナーサポート) まで、お気軽にお問い合わせください。

評価版のお申込 評価版のお申し込み

Webページ http://www.antenna.co.jp/mpd/

関連記事

『アウトライナー3』コマンドライン(その2)



e-na伊那谷 旅便り 第20回 古代米「白毛餅」

「しらけもち」と読みます。
長野県上伊那に伝わる古代米です。
甘味、粘り、香りがよくたいへんおいしい餅です。
でも、稲の丈が高く風に弱いので栽培が難しく、収穫量が少ない貴重な餅です。
白毛餅の田んぼの写真を載せます。
穂先が白く穂丈が高くとても美しい!!
特に7月初旬の朝露に濡れた様子は何とも言えないぐらい綺麗です。

田んぼの写真

会社の近くの農産物直売所で「白毛餅」を買ってきました。

直売所の写真

白毛餅の写真

「白いいちご(淡雪)」を紹介したかったのですが、今日は売っていなかったので写真を載せられません。
「白いいちご」は結構甘味があり、おすすめです。
代わりに、高遠の桜が有名ですので、「桜の花の塩漬け」を紹介します。
桜の塩漬けで桜ご飯を作ってみました。
なんか桜餅と同じようなにおいがします。

桜の塩漬けの写真

桜ご飯の写真
桜ご飯の作り方:
塩抜きした桜漬けと梅干をみじん切りにしてお米と混ぜ、普通に炊飯器で炊きます。

e-na伊那谷 旅便り
前回:第19回 光前寺
次回:第21回 こんな学校給食はいかが?

PDFの色指定 (3)CIE1931 CIELuv CIELAB

前回、人体が色を認識する仕組みについて解説しました。
PDFのCIEベースカラースペースについて知るには、
CIEのカラースペースについての知識が必要です。
特に重要となる、CIE 1931、CIELAB、CIELuvについて紹介します。

用語

CIE
光、照明、色、色空間についての標準化団体となります。CIEによって採択されたものにもCIEが頭につきます。
カラースペース(色空間)
色を成分に分け座標軸とし、その分布を空間として定義したものです。成分の取り方や距離の取り方、空間の作り方によって様々に定義されます。
知覚的均等
カラースペースの文脈では、座標の目盛の距離と、人間の知覚する色の変化の度合いの対応がより一致する、ということです。このように設計されたカラースペースを均等色空間と呼びます。
色の三属性
色相、彩度、明度という色を表すための尺度です。
色度
色相、彩度による色の分布になります。
マンセル表色系
マンセルによって考案された、色の三属性を人間の知覚に合わせて区分した、色を表す体系です。

CIE 1931

CIEによって、
1931年にCIE 1931が採択されました。
CIERGBとCIEXYZの2つがあります。
はじめて物理的な色(つまり電磁波の波長)と、
心理学的な人間の色覚としての知覚色の関係について、基準が決められました。
電磁波の波長は前回に述べた目の細胞によって、色として認識されます。
その波長による刺激と、知覚される色の対応を調べる実験結果から導出されました。
試験色と同じ色を、赤青緑の代表となるそれぞれの波長の強さを変えながら
表現する実験でした。

赤緑青色を混ぜただけではどうしても作り出せない色があり、
負の値を与えることで、単純な合成では作り出せなかった色を表現することになりました。
実験としては、試験色側に色を混ぜることで実現しました。
これを基にCIERGBが誕生しました。

負の値は、計算をする際の複雑さの一因となります。
特に手計算では歓迎されないものでした。そのために、
負の値を取らない座標の取り方が考案されます。
また、波長の輝度の取り方についても、CIERGBでは軸のそれぞれで比率を考慮する必要がありました。
これを計算し、新しい空間XYZではYが輝度として使えるようにしました。
CIERGBに、そういった計算簡略化の仕組みが
導入されたものがCIE 1931 XYZ(CIEXYZ)となります。

CIELAB

Hunter 1948 L, a, b(Lab)

Labは明度Lと、マゼンタと緑の中間色a、
黄色と青の中間色bによるカラースペースです。
CIEXYZに基づきます。

マンセル表色系に影響されており、
CIEXYZよりも知覚的均等とされています。
また、Lは人間の明度の知覚と極めて近しいものとして扱うことができ、
色の調整を感覚的に行えます。

CIE 1976 L*, a*, b* (CIELAB)

CIELABは、明度を表わすL*、
マゼンタと緑の中間位置を表すa*、
黄色と青の中間位置を表すb*に対応した座標を持ちます。
L*、a*、b*はHunter 1948 LabのL、a、bと少し異なることを
「*」によって明示しています。L* = 0は黒、L* = 100は
白の拡散色とされています。a*は正の値がマゼンタ、負の値が緑寄り、
b*は正が黄色、負が青寄りです。

CIELuv

CIE 1960

色度を座標(u,v)で表す、色度空間になります。

CIE 1964(CIEUVW)

CIEUVWはU* V* W*の3値を使うもので、
CIE 1960を基にしています。
W*はCIEXYZにおけるYを輝度として計算される明度の値で、U*, V*はそれぞれ
(u0, v0)をWhitePointとした値、CIE 1960の(u,v)点、W*から計算した値になります。

以前に考案されたカラースペースよりも、
より知覚的均等であるように考案されました。

CIE 1976 (L*, u*, v*) (CIELuv)

これは、CIEUVWを発展させたものといえます。
(u*, v*)はCIEUVWカラースペースとは値の取り方に違いがあることを
明示しています。

CIELABとCIELuvの関係

CIELABとCIELuvは、CIEXYZを基に、異なる観点から知覚的均等を意識して
考案され、1976年に同時に採択されました。
一方のCIELABは、CIELuvと比べ照明光による影響の少ない色指定を行えることから、
印刷などに使用されます。
他方のCIELuvはコンピュータディスプレイなど、発色する光が関係する分野で使用されます。
また、両者ともCIEXYZへの変換が可能です。
つまり、印刷向きの色指定とディスプレイ向けの色指定の対応付けが可能となります。
次回はこの点が係わる、ICCプロファイルについての紹介を予定しています。

PDFの色指定について
PDFの色指定概要・デバイスカラースペース
PDFの色指定について(2)
色とは何か
PDFの色指定(4)
ICCプロファイル
PDEの色指定(5)CIEベースカラースペース
PDFのCIEベースカラースペース格納形式と使用のされ方の概略

5/22 正確でない表現だった箇所を削除しました。


Pages: 1 2 3 Next