Skip to content

画像データの作成

watamario15 edited this page Aug 16, 2023 · 4 revisions

Uncyclopedia については、xtbconv も使用できます。

画像ファイルの準備

各 Wiki サイトが公開しているダンプファイルをダウンロードするか、WikixWikiteam 等のツールを使用して取得します。Uncyclopedia は https://download.uncyc.org/ からダウンロードが可能です。ja-images.zip が日本語版の画像データです。一方、Wikimedia 財団は画像ダンプを公開しておらず、クローラを使った収集も許可していないため作成困難です。

Wikix は WSL でも、apt-cygapt に、openssl-devellibssl-dev に置き換えれば Cygwin と同じ方法で導入できます。Wikiteam を使う場合は Python 2 が必要です。

このページでは、画像が保存されているディレクトリを IMAGES と表現します。

XTBook は JPEG 画像のみに対応するため、全ての画像データを JPEG 形式に変換する必要があります。このとき、拡張子を含めた元のファイル名を変えてはいけません。また、画像が幾つかのサブフォルダに分かれて保存されている場合は全て IMAGES へ移動しておきます。

  • AAA.jpgAAA.jpg.jpg
  • BBB.pngBBB.png.jpg
  • CCC.gifCCC.gif.jpg
  • DDD.svgDDD.svg.jpg

ここでは ImageMagick を使用します。Ubuntu であれば sudo apt install -y imagemagick でインストールできます。PC の性能や Wiki の規模によりますが、変換には数十分から数時間かかります。以下のコマンドでは、形式変換に加えてファイルサイズ削減のために 800x480 ピクセル以下への縮小も行います。

なお、ImageMagick 7 以降ではコマンド名が変更されているため、該当のバージョンを使用している場合は、以下のコマンド中の convertmagick に置き換えます。

mkdir resized
find IMAGES -type f -print0 | xargs -P$(nproc) -0 -I{} convert {} -set filename:orig '%f' -quality 85 -resize 800x480\> 'resized/%[filename:orig].jpg'

Image Complex 形式に変換

find resized -name "*.jpg" | MkImageComplex-bin -o [output name]

[output name] は出力するフォルダの名前を Wiki名img-変換日.xtbdict の形式で指定します。記事を変換する場合とほとんど同じで、Wikipedia 日本語版の最新データを 2023 年 1 月 1 日に変換する場合は以下です。

find . -name "*.jpg" | MkImageComplex-bin -o jawikiimg-20230101.xtbdict

Info.plist ファイルの作成

最後に辞書ファイルの情報を記述したファイルを BOM なし UTF-8 で作成します。以下の Wikipedia 日本語版の例を元に作成します。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>XTBDictionaryIdentifier</key>
	<string>com.nexhawks.XTBook.WikipediaImages.ja</string>  <!-- (1) -->
	<key>XTBDictionaryScheme</key>
	<string>jawikiimg</string> <!-- (2) -->
	<key>XTBDictionaryTypeIdentifier</key>
	<string>com.nexhawks.XTBook.ImageComplex</string>
	<key>XTBImageComplexImagesFile</key>
	<string>Images</string>
	<key>XTBDictionaryDisplayName</key>
	<string>ウィキペディア 日本語版画像</string> <!-- (3) -->
</dict>
</plist>

(1) の部分は Wikipedia 日本語版であれば com.nexhawks.XTBook.Wikipedia.ja、Uncyclopedia 日本語版は com.nexhawks.XTBook.Uncyclopedia.ja となります。(2) の部分は [output name] を決めたときの Wiki 名 (jawikijawiktionary) に img を付け足したものとなります。(3) の部分は表示したい辞書名を指定します。書き換えが完了したら文字コードを UTF-8 にして、ファイル名 Info.plist で Articles.db 等のファイルがあるフォルダに保存します。

なお、主要なものはこちらに掲載しています。

これで辞書ファイルの作成は完了です。記事と同様に MkRax を用いて圧縮することも可能ですが、JPEG 自体が圧縮形式なため冗長なデータは既にほとんど取り除かれた状態であり、あまり効果がないので必要ありません。

Clone this wiki locally