Manual:画像の管理

From mediawiki.org
This page is a translated version of the page Manual:Image administration and the translation is 84% complete.

この記事ではMediaWikiがどのようにファイルを処理し、保存するかを説明し、設定に関するいくつかの情報を説明します。

これは画像だけでなく、アップロード可能な他のタイプのファイルにも適用されます。 すべてのファイルは、「File:」名前空間内の対応する記事に格納されます。 MediaWiki 1.14 未満では、代わりに "Image:" 名前空間が使用されていました。 “Image:”は下位互換性のために、現在でも別名として残されています。

画像のアップロードと使用

Help:画像 を参照してください

画像のアップロードの有効化

画像をアップロードするために、以下の条件を満たさなければなりません:

  1. MediaWikiのアップロードが有効になっている。 $wgEnableUploads true を設定します。
  2. ファイルタイプが許可されなければなりません。 詳細情報: $wgFileExtensions
  3. 利用者が「upload」権限を持つグループに属していなければなりません。 既定では、この権限はすべてのログイン利用者に付与されています。

Special:Upload でアップロードがなされます。

Manual:ファイルのアップロードの設定 Manual:Mime type detection Manual:Adding support for new filetypes を参照してください。

画像を取り扱うための関連パラメータ

以下のパラメータが関連しています:

画像のサムネイル化

MediaWiki's image syntax allows dynamic resizing and thumbnailing of images (see Manual:ファイルのアップロードの設定 for general help on file uploads).

画像のサムネイル作成には ImageMagickGD ライブラリのいずれかが必要です。既定の MediaWiki のインストレーションにはこれらのソフトウェアはどちらも付属しません。

GD

PHP comes with GD enabled by default. GD will not require any configuration or modification to be used.

Windows 環境では GD の使用を推奨します

GD can be downloaded from https://libgd.github.io/. 最近のバージョンではこれは必須ではありません。

ImageMagick

In MediaWiki, enable ImageMagick in LocalSettings.php by setting $wgUseImageMagick to true.

ImageMagick can be downloaded from https://imagemagick.org/.

Once ImageMagick is installed, you must enable ImageMagick and point MediaWiki to the convert or convert.exe program on your computer in LocalSettings.php like this:

$wgUseImageMagick = true;
#$wgImageMagickConvertCommand = 'C:/ImageMagick/convert.exe'; # for Windows
$wgImageMagickConvertCommand = '/usr/bin/convert'; # for Linux

ImageMagickを使っている場合は、LocalSettings.php 内の $wgUseImageMagick true にしてください。 コマンドが Web サーバー プロセスで実行可能であることを確認します。 For example, Windows users will want to change the default to "C:\ImageMagick\convert.exe" (or similar).

ImageMagickを使用する前の古いサムネイルファイルを再作成するには、$wgThumbnailEpoch を使用することができます。

レンダリングがサイレントに失敗する場合は、$wgMaxShellMemory を確認して増やしてください。

See the help page on Image Thumbnails not working for troubleshooting.

GraphicsMagickは、ImageMagickの代替として使用することもできます。 $wgCustomConvertCommand を以下のように設定する必要があります。 例:

$wgUseImageMagick = false;
$wgCustomConvertCommand = "gm convert %s -resize %wx%h %d";


Image formats

GIF

WindowsでGIFアニメーションをサムネイル化するには、上記のようにImageMagickをインストールする必要があります。

SVG

Wikimania 2016でDynamic SVGに関するプレゼンテーションを行いました。

MediaWikiはSVG画像のレンダリングをサポートしています: 有効にした場合、SVGは他の画像ファイルのように使用されます; それらは要求に応じて自動的にPNGファイルにレンダーされます。 共有ホストで、SVGレンダラーがプリインストールされていない場合は、プロバイダーに頼んでインストールしてもらった方がいいかもしれません。

SVGサポートを有効にするためには以下のようにします:

  1. 最初に、SVG ファイルのアップロードをできるように LocalSettings.php で $wgFileExtensions [] = 'svg'; を設定してください。セキュリティ上の理由から MediaWiki は JavaScript を含む SVG は拒否することにご注意ください。
    誤検出 (false positive) を避けるために、$wgAllowTitlesInSVG = true;LocalSettings.php ファイルに追加してください。
    If you are using MediaWiki 1.34 or higher, $wgAllowTitlesInSVG is never applied and now always true. You can safely remove this in your LocalSettings.php file.
    ファイルが破損しているというエラーが出る場合、MIME タイプ検出 が適切に動作していることを確認してください。
  2. $wgSVGConverter LocalSettings.php に追加して、使用したいレンダラーを設定します。
    利用可能なオプションは ImageMagick, ImagickExt, sodipodi, inkscape, batik, rsvg, and imgserv です。
    例: $wgSVGConverter = 'ImageMagick';
    • 変換プログラムがシステム パスにない場合、$wgSVGConverterPath を使用してプログラムを含む ディレクトリ を指定しなければなりません。.
    • librsvgは高速ですが、あまり正確ではありません。 多数のライブラリに依存しています。これらのライブラリをすべて自動的にインストールするには、パッケージマネージャを使用するとよいでしょう。 ウィキメディアのプロジェクト群では rsvg を使用しています。
    • Batikは最も正確なSVGレンダラですが、アンチエイリアシングが最適でない場合があります。 そのSVG解析はより厳密で、他のレンダラーが受け入れる「ほとんど有効な」SVGファイル(例えば、commons:File:UbuntuCoF.svg)を拒否する原因となっているのです。 BatikはJavaに依存しており、rsvgよりはるかに遅いですが、常にSVGファイルを追加するのでなければ、これは大きな問題ではないかもしれません。 SVG benchmarksを参照。 ディストリビューションに含まれていない場合、動作させるために多くの作業を必要とします。
    • InkscapeもまたSVGを正確に処理し、rsvgの半分の速度ですが、インタラクティブなグラフィックの使用のために設計されています。しかし、ビューア/変換プログラムである inkviewが付属しており、実行ユーザーのために書き込み可能なホームディレクトリを必要とします。 Since it will be running as user www or something similar, it will try to create .inkscape/ and .gnome2/ directories in the corresponding home directory, and will fail silently, crash or hang indefinitely if it is not able to. Inkscape は rsvg よりも (a) Windows で (スタンドアロンパッケージとして提供されます)、または (b) Inkscape で描いた重要な SVG が rsvg では正しくレンダリングできない場合、望ましいとされています。 Inkscapeはlibrsvgと同じくらい複雑な依存関係を持っています。あなたのディストリビューションに含まれているか、完全なスタンドアロンパッケージとして利用できる場合のみ使用してください。
    • Sodipodi is the program Inkscape was forked from.

同様の配慮が必要です。Sodipodは現在アクティブな開発中ではありません。

    • Since version 6.x.x ImageMagick renders SVGs, but imperfectly.

これは既定値ですが、可能であれば避けてください。 ただし、効果はあります。 Windows では、Windows 自身の convert.exe との競合を避けるために $wgConvertPath を設定する必要があります。 このシナリオでの簡単な代替案は、LocalSettings.phpに$wgSVGConverters['ImageMagick'] = '"' . $wgImageMagickConvertCommand . '" -background white -thumbnail $widthx$height^! $input PNG:$output';という行を追加し、パスにスペースを入れることもできるようにすることです。

      • To prevent thumbnail creation errors with ImageMagick, if it's ≥ 7.0.9-25, then Inkscape must also be ≥ 1.x.x. Likewise, if ImageMagick is < 7.0.9-25, then Inkscape must also be < 1.x.x.

See ImageMagick issue.

    • The PHP Imagick extension supports SVG rendering, however the same considerations as for the regular ImageMagick apply.
    • The GD library is not capable of converting SVG images to the PNG format, at least according to Joen Asmussen's June 2008 NoScope blog.
    • Most current web browsers except Internet Explorer (until version 9) can display SVGs directly.

SVGをPNGにレンダリングするためにlibrsvgを使用すると、より正確な結果が得られ、また、帯域幅の消費も少なくなります。 SVG の直接表示は、NativeSvgHandler 拡張機能をインストールしない限り、既定では MediaWiki ではサポートされていません (タスク T5593)。

SVG レンダリングが不要で、利用者に svg ファイルをダウンロードさせて閲覧させたい場合は $wgSVGConverter = false を設定します。

トラブルシューティング

SVG の代わりに空白の四角が表示されたり(Chrome)、画像が全く表示されない(Firefox)、すべてのPNGリンクが404エラーにつながり、他のエラーメッセージがどこにも表示されない場合は、$wgGenerateThumbnailOnParse 変数をチェックしてみてください。 false を指定すると、SVG変換を常に遅延させることができます。 PHP の proc_opensymlink メソッドが有効になっていることを確認します (セキュリティやパフォーマンス上の理由から php.ini で無効になっている場合があります)。

JPEG (GDを使用)

LocalSettings.phpに以下の行を追加するだけで、GDライブラリに自動的にフォールバックするようになります。

$wgUseImageMagick = false;

For errors with JPEG thumbnails, see JPEG (using GD).

TIFF

TIFFファイルのサムネイルを生成するには、MediaWiki 1.15.0以降が必要です。

  1. LocalSettings.php ファイルで TIFF ファイルのアップロードを許可する。 $wgFileExtensions [] = 'tif';
  2. LocalSettings.php $wgTiffThumbnailType を加え、jpgまたはpngのどちらかに設定し、生成させたいサムネイルの種類を指定します。
  3. TIFFファイルのサムネイル作成には、JPEG、GIF、PNGファイルのサムネイル作成に必要な以上のシステムリソースが必要になる場合があります。 $wgMaxImageArea $wgMaxShellMemory の適切な設定を検討する

DjVu


画像の削除

Files, like wiki pages, can only be deleted by users with the "ページを削除 (delete)" permission (管理者 by default). Deletion of files is done by deleting the associated description page (or by clicking the "すべて削除" link in the "ファイルの履歴" table).

特定の版の削除

画像ファイルが変更された場合、画像記事に表示される画像ファイルのリビジョンの履歴が存在します。 それぞれのリビジョンは"削除"のリンクを持ちます。 これがクリックされると、リビジョンとファイルは恒常的に削除されます。

ファイルのバージョンは、ファイル説明ページのページ履歴とは別になっています。

ファイルの古いリビジョンに関する情報はoldimage テーブルに、ページの古いリビジョンに関する情報はrevision テーブルに格納される。

ファイルの復元

ファイルは、通常のWikiページと全く同じ方法で削除を取り消すことができます。 削除されたファイルが格納されるディレクトリは、Manual:$wgDeletedDirectory で定義される。 削除された画像に関する情報は、filearchive テーブルに格納される。

アーカイブされたファイルの削除

MediaWiki バージョン 1.11 以降、削除された画像は既定でサーバーに保存されたままです。 選択したアーカイブ画像を削除したい場合は、eraseArchivedFile.php メンテナンススクリプトを使用して削除することができます。 完全に削除したい場合は、deleteArchivedFiles.php スクリプトで行うことができます。 アーカイブされたファイルを削除すると、もう削除を取り消すことはできません。

ファイル削除の理由

上記のようにファイルの削除を選択する場合、利用者は削除の理由を尋ねられることになります。 利用可能な理由は、あなたのwikiのMediaWiki:Filedelete-reason-dropdownで編集することができます。

データストレージ

画像がアップロードされたときはいつでも、次のものが作成されます:

  1. ファイルの正確な名前で画像の名前空間にある記事、例えばImage:MyPicture.png。 この記事が保存され他の記事と同じように振る舞います。

ファイル自体は、ファイルシステム上のフォルダに保存され、空白文字はマージされ、_に置き換えられる。

  1. If necessary and thumbnailing is available, thumbnailed versions of the file will be created when necessary (such as for the usage on the file description page).

それぞれのサムネイルは独自の画像名によって独自のフォルダを取得します。

$wgHashedUploadDirectory が有効な場合 (既定値)、MediaWiki は images ディレクトリにいくつかの下位ディレクトリを作成します。

xyは最後の画像ファイル名のmd5ハッシュの文字列の最初の2つです。

フォルダー

すべての画像ファイルは $wgUploadPath (既定値は images/) のフォルダーに格納されます。

/imageサブフォルダの説明:

archive
これは新しいバージョンによって置き換えられるオリジナルの画像ファイルの保存場所です。
temp
Used for temporary storage of files during image uploading. (タスク T11018により、これらのファイルは必ずしも自動的に削除されない場合があります。)
thumb
Thumbnails (automatically generated) for the files. これらが失われた場合、自動的に生成されます。

設定によっては、さらに画像のサブフォルダーが存在する場合があります。

math
Folder to store your rendered TeX input, see also Extension:Math or Manual:Math.
x/xy
If $wgHashedUploadDirectory is set to true (which is the default), images will be stored in subfolders of the images, thus making file paths look like images/a/ab/filename.jpg. なぜこのようなことが望まれるのか、このシステムの仕組みの詳細については、Manual:$wgHashedUploadDirectory を参照してください。

データベースのテーブル

  • Image:MyPicture.pngの記事: はページ、テキスト、リビジョンなどにある記事として保存されます。
  • image - ファイルのサイズやアップロード日などのメタデータを保持する。
  • oldimage - 新しいバージョンに置き換わったファイルの情報が保存されます。
  • filearchive - 削除されたファイルの情報を保持します。
  • imagelinks - どのページがそのファイルを使用しているかを記録します。

記憶容量の使用

画像は記事よりもかなりのスペースが必要です。 次の計算はLinux/Unixサーバで4KBのブロックサイズを前提としています。

既定の設定は $wgHashedUploadDirectory = true です。

すべてのディレクトリに要求されるスペースです:

  • image ディレクトリ: 0-f/x0-f: max. 16*16 = 256 ディレクトリ = 256*4 KB = 1024 KB
  • archive : 0-f/x0-f: max. 16*16 = 256 ディレクトリ = 256*4 KB = 1024 KB
  • thumb ディレクトリ: 0-f/x0-f: max. 16*16 = 256 ディレクトリ = 256*4 KB = 1024 KB
  • temp ディレクトリ: 0-f/x0-f: max. 16*16 = 256 ディレクトリ = 256*4 KB = 1024 KB

それゆえ、アップロードされる画像無しのスペースの基本量は4MBです。

それぞれの画像のために必要なスペース:

  • オリジナル画像ファイルのサイズ + 平均2KBのオーバーヘッド

600ピクセル以上の高さもしくは800ピクセル以上の幅を持つ画像のために必要なスペース:

  • 作成されたサムネイルのサイズ + 平均2KBのオーバーヘッド(それぞれ)
  • サムネイルのためのディレクトリ(4KB) (それぞれの画像は独自のサムネイルディレクトリを持ちます)

例:

  • 20778バイトのpng画像(スモールサイズでサムネイル無し): 画像のために24KB: 合計24KB
  • 123.000バイトのjpeg画像(ビッグサイズ、自動サムネイル): 画像のために124KB、サムネイルディレクトリのために4KB、サムネイルのために64KB: 合計: 192KB

ファイル アクセス

アップロードされたファイルは一般的にはMediaWikiではなくウェブサーバによって提供されます。 パスの暗号化(例えば、/c/c4/...)による曖昧化を通して最小限のレベルでのセキュリティがある一方で $wgHashedUploadDirectory が設定されている場合、パスはファイル名から簡単に計算でき本当の意味での保護ではありません。

認証済み利用者へのアクセス制限については、Manual:画像認証 を参照してください

アップロード フォーム

ライセンス

MediaWikiの機能はSpecial:Uploadページが画像のライセンシングを効率化することを可能にします。 Wikipediaのアップロードページは画像要約の下のドロップダウンボックスのライセンシング機能を持ちます。 この機能を有効にするために、シスオペはMediaWiki名前空間でLicensesページを編集する必要があります。 例です: MediaWiki:Licenses They can do this by going to the MediaWiki:Licenses page of their wiki and clicking 'create' or 'edit'.

ライセンスはwikiリストで特定のフォーマットを要求します。

*subst:license 1|license 2|License text
* Header 1:
** cc-by-sa-2.5|Attribution ShareAlike 2.5

Line 1 will produce "License text" and substitute the license 1 template in the image page and transclude license 2.
2行目はwikiテキストの"Header 1:"で無効された(grey out)ヘッダを表示します
3行目は "Attribution ShareAlike 2.5" を作り出し、画像ページ上で cc-by-sa-2.5 テンプレートを参照読み込みします。

For detailed real world example, see Wikipedia:MediaWiki:Licenses or Commons:MediaWiki:Licenses.

海外のリポジトリ

外部リポジトリ$wgForeignFileRepos 配列の設定により、Wikiにアップロードすることなく、外部リポジトリに保存されているファイルにアクセスすることが可能です。 この機能はいくつかの可能性を持っています。

  • ForeignAPIRepoはそのAPIを通してWikimedia CommonsのようなリモートMediaWikiインストールからファイルにアクセスします。
  • ForeignDBRepo はデータベースを通してファイルにアクセスし、ウィキファミリーを作成するのに便利です。
  • FSRepoはローカルフォルダからファイルにアクセスします。

いずれの場合も、通常の画像構文を使って、海外のリポジトリにあるファイル名を指定して、ページにファイルを埋め込むことができるようになります。 なお、上記の実装のいくつかはまだ実験的なものであり、本番環境には適さない可能性があります。