Quick Lookは、Mac OS Xバージョン10.5に導入されたテクノロジーで、SpotlightやFinderなどのクライアントアプリケーションによる、文書のサムネイルイメージやフルサイズでのプレビューの表示を可能にします。一般的なコンテンツタイプ、特にHTML、RTF、プレーンテキスト、TIFF、PNG、JPEG、PDF、QuickTimeムービーなどの文書に対しては、この機能が自動的にサポートされます。ただし、あまり一般的でない文書やプライベートなコンテンツタイプを含んだアプリケーションも、このQuick Look機能を利用できます。このようなアプリケーションには、Quick Lookジェネレータ、すなわち、指定された文書をネイティブ形式からQuick Lookによるユーザへの表示が可能な形式に変換するプラグインを追加できます。
本書ではQuick Lookテクノロジーについて解説し、アプリケーション開発者である読者の方を対象に、ジェネレータを作成してQuick Lookで文書のサムネイルイメージやプレビューイメージを表示する方法を説明します。Quick LookジェネレータはCFPlugInスタイルのバンドルとして設計されていますが、プラグイン実装の詳細部分はすべて開発者に委ねられています。さらに、Quick LookジェネレータのプログラムインターフェイスはANSI Cインターフェイスですが、Cocoaフレームワークのメソッドを呼び出すObjective-Cコードを使ってジェネレータを記述できます。
『Quick Lookプログラミングガイド』は次の章で構成されています。
「Quick Lookとユーザエクスペリエンス」では、Quick Lookテクノロジーの機能を説明し、アプリケーションでこのテクノロジーを採用する利点を挙げます。Quick Lookで特殊な意味を持つ用語の定義も行います。
「Quick Lookのアーキテクチャ」では、Quick Lookの各種のコンポーネントについて説明します。各コンポーネントの役割や、コンポーネント同士のやり取りなどを取り上げます。
「Quick Lookプロジェクトの作成と設定」では、Quick Lookジェネレータプロジェクトを作成する方法と、ジェネレータのプロパティを指定する方法を説明します。
「ジェネレータの実装の概要」では、サムネイルとプレビューを生成するためのアプローチをいくつか要約し、各アプローチに最も適した状況を特定します。
「グラフィックスコンテキストにおけるサムネイルとプレビューの描画」では、ビットマップグラフィックス、単一ページのベクトルグラフィックス、複数ページのベクトルグラフィックス用に最適化されたグラフィックスコンテキストにサムネイルとプレビューを描画する方法を示します。
「プレビューの動的な生成」では、RTFやHTMLなど、サポートされているコンテンツにテキストベースのプレビューを動的に生成する方法を説明します。HTMLプレビューの場合は、イメージなどの添付を含める方法も示します。
「文書へのプレビューとサムネイルの保存」では、アプリケーションでサムネイルやプレビューのイメージを文書に保存し、そのイメージをジェネレータでQuick Look用に簡単に取得する方法を紹介します。Quick Lookに返されたイメージデータが、Image I/Oフレームワークによってサポートされる形式の場合に使用すべき関数についても説明します。
「サムネイルへのCore Graphicsイメージの割り当て」では、イメージがImage I/Oフレームワークによってサポートされる形式でない場合に、そのイメージ(CGImageオブジェクト)を返す方法を示します。
「プレビューとサムネイルの取り消し」では、Quick Lookによって要求された場合に、プレビューとサムネイルの生成を取り消す方法を説明します。
「ジェネレータのデバッグとテスト」では、Quick Lookジェネレータのデバッグとテストに使用できるツールとテクニックについて説明します。
Quick Lookジェネレータの関数と定数の詳細については、次の文書を参照してください。
QLPreviewRequest Reference
QLThumbnailRequest Reference
次のサンプルコードプロジェクトを、Quick Lookジェネレータ実装の雛形として使用できます。
QuickLookSketch
サムネイルイメージやプレビューイメージを生成するには、イメージの描画や作成が必要になるため、次の文書も参考になります。
『Quartz 2D Programming Guide』
『Image I/O Reference Collection』
『Cocoa Drawing Guide』
『Core Image Programming Guide』
Last updated: 2007-12-13