PerfectVector
著者: Irene Kim

画素を失わずにWordからロゴを取り出す方法

Word または PowerPoint ファイル内に保存されている画像を復元し、そのピクセル寸法とトリミングを確認して、ロゴをトレースする必要があるか、それともより適切なソースが必要かを判断します。

2 分で読める
目次

品質をさらに損なうことなく Word 文書からロゴを抽出するには、スクリーンショットを作成したりトレースしたりする前に、埋め込まれた画像ファイルを回復して検査します。通常の DOCX には、その小さなページ配置が示すよりも多くのピクセルを含む画像バイトが含まれる場合があります。抽出では、保存されている内容が保持されます。以前に破棄されたピクセルを復元することはできません。

同じパッケージ検査アプローチで、通常の PPTX から埋め込みメディアを回復できます。以下のテストされた Python ルートは、これらのバイトを新しいフォルダーにコピーします。 Word や PowerPoint をレンダリングしたり、表示されたトリミングを再現したり、ページ効果を適用したりすることはありません。使用する前に、どの復元画像が意図したロゴと一致するかを確認してください。

まず回復してから発生源を判断する

文書には触れずに保管してください。保存されているメディアをコピーし、正しいロゴを特定し、実際のピクセル寸法、エッジ、および意図したトリミングを検査します。既存のベクトルを見つけたらそれを保存します。ラスターに編集可能なパスが必要な場合にのみトレースします。

お手持ちの画像で試す
フル機能のツールを開く
無料でお試しいただけます。画像をドロップすると、登録なしでベクターのプレビューを確認できます。

保存されている画像のサイズがページの配置と異なる

埋め込み画像は、ドキュメント パッケージ内に保持されるファイルです。配置とは、ページまたはスライド上で画像がどのように配置され、サイズが変更されるかを示します。クロップやエフェクトは、基礎となるメディア ファイルと同じものでなくても、表示される内容を変えることができます。

Microsoft のWord 文書構造ガイドでは、DOCX ZIP パッケージとその構成要素について説明しています。その画像挿入例は、画像部分に画像データを格納し、ドキュメントから参照する例です。以下の抽出を試すために Open XML コードを記述する必要はありません。

これら 3 つの質問は分けておいてください。

質問何を検査するか証明されないこと
ラスターの詳細はどれくらい保存されますか?抽出された画像のピクセル寸法とエッジページ配置サイズだけではこれに答えることはできません
これは承認されたロゴですか?バージョン、レタリング、色、および対象となるトリミング最大のファイルが自動的に正しいファイルになるわけではありません
ベクター パスは必要ですか?次の編集、印刷、またはカット ジョブの要件抽出自体はピクセルをパスに変換しません

クライアントがデザイナーのオリジナルを持っている場合は、それを求めてください。 低解像度のロゴ導入ガイドでは、そのトリアージについて説明しています。 Office ファイルが現在利用可能な最良のソースである場合、ドキュメントの保存メディアを確認すると便利です。

文書の複製からメディアをコピーする

ローカルの通常の暗号化されていない .docx または .pptx のコピー、Python 3、および新しい出力フォルダー名が必要です。これはファイル抽出ワークフローであり、Office メニューのウォークスルーではありません。従来の .doc、暗号化されたドキュメント、リンクされたオンライン画像、およびネイティブの画像として保存の動作はテスト対象外です。

  1. ドキュメントを複製します。 受信したファイルは変更しないでください。コマンド例では、コピーに client-logo.docx という名前を付け、スクリプトの横に置きます。
  2. これを recover-media.py として保存します。 これは、Python の標準の zipfile モジュールを使用し、画像のデコードや再圧縮を行わずにメディア エントリを読み取り、そのバイトを書き込みます。
from pathlib import Path
from zipfile import ZipFile
from hashlib import sha256
import sys
 
source = Path(sys.argv[1])
output = Path(sys.argv[2])
if source.suffix.lower() not in {".docx", ".pptx"}:
    raise SystemExit("Use an ordinary, unencrypted DOCX or PPTX copy.")
 
with ZipFile(source, "r") as package:
    members = [
        item for item in package.infolist()
        if not item.is_dir()
        and item.filename.startswith(("word/media/", "ppt/media/"))
    ]
    if not members:
        raise SystemExit("No files found in the expected embedded-media folders.")
    output.mkdir(exist_ok=False)
    for index, member in enumerate(members, 1):
        data = package.read(member)
        target = output / f"{index:03d}-{Path(member.filename).name}"
        target.write_bytes(data)
        print(member.filename, "->", target, sha256(data).hexdigest())
  1. そのフォルダーから実行します。 出力フォルダーはまだ存在していてはなりません。
python3 recover-media.py client-logo.docx recovered-logo

PowerPoint のコピーの場合は、入力を .pptx ファイル名に変更し、別の出力フォルダーを選択します。システムの名前が python3 ではなく Python 3 python である場合は、代わりにその実行可能ファイルを使用してください。

  1. 出力を読み取り、ファイルを検査します。 出力されたパスには、word/media/image1.png や ppt/media/image1.png などのパッケージ メンバーが表示されます。長い 16 進文字列は、そのバイトの SHA-256 フィンガープリントです。番号付きの出力名は、複数のメディア項目を区別するのに役立ちます。 image1 は、そのファイルがあなたのロゴであることを保証するものではありません。
  2. 画像ビューアで可能性の高い候補を開きます。 ピクセル寸法を確認し、100% ズームで最小の文字、細い線、エッジを検査します。意図したバージョンを比較し、ドキュメントまたはクライアントが承認したリファレンスと切り抜きます。

コマンドによって出力フォルダーが存在することが報告された場合は、以前の結果を保存できるように新しいフォルダー名を使用します。予期されるメディア エントリが見つからない場合、ドキュメントでは、このルートが予期する埋め込み画像ではなく、別の種類のコンテンツまたは参照が使用される可能性があります。元のイメージまたは適切な暗号化されていないエクスポートを要求します。従来の .doc の名前を .docx に変更しても、その内容は変換されません。

パッケージテストで得られたもの

オリジナルの 1600 × 900 PNG ロゴを含む有効な DOCX および PPTX ファイルを作成し、オーサリング ライブラリを含むパッケージを再度開き、メディアを個別に抽出しました。ドキュメントに記録されている配置幅が 4 インチであるにもかかわらず、DOCX から復元された PNG は入力バイトと正確に一致しました。

PPTX には、同じ PNG と 25% の残りのクロップのメタデータが含まれていました。抽出では、同じバイト フィンガープリントを持つ完全な 1600 × 900 の保存された PNG が返されました。これはパッケージデータの観察です。スライドをレンダリングしたり、その切り抜きが PowerPoint でどのように見えるかをテストしたりしませんでした。

さらに、ロゴを400 × 225のJPEGに縮小してから別のDOCXに埋め込みました。抽出されたJPEGは縮小後のファイルとバイト単位で同じで、寸法も400 × 225のままでした。この対照実験が示すのは、保存済みの画像を取り出しても、それ以前の縮小は元に戻らないという限界です。Officeの圧縮機能に不具合があることを示す実験ではありません。

管理されたパッケージから実際に抽出されたメディア
復元された 1600 x 900 PNG ロゴと以前に縮小された 400 x 225 JPEG を表示するプレビュー。保存されたメディアと DOCX 配置および PPTX クロップメタデータを区別するメモが表示されます。
保存されている元の PNG はバイトごとに復元されます。埋め込む前に縮小された JPEG は、抽出後も縮小されたままになります。

これらはライブラリで作成されたパッケージ テストであり、ネイティブの Word や PowerPoint UI、画像として保存、または表示レンダリング テストではありませんでした。この比較では、PerfectVector 変換は実行されませんでした。

トレースする前に回復されたアセットを選択してください

ファイル名やファイル サイズだけで選択しないでください。ドキュメントには他の画像やバリアントを含めることができ、保存された画像には表示される切り抜きの外側のコンテンツが含まれる場合があります。ロゴをソースとして扱う前に、ロゴの形状、ワードマーク、バージョン、必要なトリミングを確認してください。

既存のベクター ファイルを回復する場合は、それを保存し、必要なパスが含まれているかどうかを確認してください。もう一度トレースするためだけにラスタライズするメリットはありません。 ロゴ ファイル形式ガイドでは、編集可能なマスターと配信コピーについて説明しています。 PDF のみのリカバリは、PDF アートワークのチェックと変換でカバーされる別のタスクです。

ラスターの場合は、実際に復元したピクセルを検査します。小さな文字がすでにぼやけている、壊れている、または欠けている場合は、オリジナルを探すか、意図的に再構築してください。保存されたコピーを拡大しても、失われた文字の形状は証明されません。間違ったトリミングや時代遅れのブランドを使用した大きな画像も、間違ったソースです。

将来のドキュメントの引き継ぎに備えて、Microsoft は Word、PowerPoint、Excel の画像圧縮コントロールを文書化しています。これはドキュメントの作成者と話し合うための予防的な設定であり、ここでテストした回復操作ではありません。可能であれば、オリジナルのロゴ ファイルを別途要求してください。

次のジョブでパスが必要な場合にのみベクトル化します。

PerfectVector は、復元されたファイルがラスター ロゴであり、その可視形状を編集可能なベクター パスとして必要とする場合に適しています。最も適切な画像を使用してロゴ ベクタライザーを使用し、プレビューとそのソース、特に最小のレタリング、カウンター、細い線を比較します。

抽出とベクトル化により、さまざまな問題が解決されます。 1 つ目は、保存されている画像データを取得します。 2 つ目はラスター形状をパスとして解釈します。どちらも、承認されたロゴを選択したことを確認するものではなく、トレースによって欠落しているピクセルが元々何を意味していたのかを証明することはできません。 PerfectVector 結果を編集およびエクスポートするには、ロックを解除する必要があります。保護されたプレビューは表示専用です。

よくある質問

Word からロゴを抽出すると、元の品質が復元されますか? ドキュメントにまだ保存されているものを取得します。それが元のイメージである場合は、保存されているバイトを回復できます。保存前に縮小された場合、抽出では破棄されたピクセルは戻りません。

抽出された画像はページに表示されている切り抜きと一致しますか? 必ずしもそうとは限りません。パッケージは、配置またはトリミングのメタデータとは別に完全な画像を保存できます。復元したファイルを目的のアートワークと比較し、使用する前にトリミングを確認してください。

PowerPoint にも同じスクリプトを使用できますか? はい、ここでテストした通常の暗号化されていない PPTX ワークフローの場合です。スクリプトに PPTX コピーと新しい出力フォルダー名を指定します。予想されるパッケージ フォルダーからメディアをコピーします。スライドをレンダリングしたり、その効果を適用したりすることはありません。

情報源

  1. Microsoft Learn — WordprocessingML ドキュメントの構造 — DOCX ZIP パッケージとその構成要素であるドキュメント パーツについて説明します。
  2. Microsoft Learn — ワープロ文書に画像を挿入 — 文書によって参照される画像部分に保存された画像データを表示します。
  3. Python — zipfile — テストされた抽出スクリプトで使用される標準ライブラリのアーカイブ リーダーを文書化します。
  4. Microsoft サポート — 画像圧縮をオフにする — 将来のドキュメントの受け渡しのための予防圧縮設定について説明します。

復元されたラスターに編集可能なパスが必要な場合は、無料でそのロゴを使用して開始してください。結果を受け入れる前に、抽出された画像に対してベクター プレビューの小さな文字と薄い詳細を検査します。

ブログのその他の記事

PerfectVector

ロゴやアートワークを
きれいで編集可能なSVGに変換

ベクター化とプレビューの確認は無料で、1日あたりの上限はありません。