Příručka:Správa obrázků

This page is a translated version of the page Manual:Image administration and the translation is 95% complete.

Tento článek popisuje, jak MediaWiki zpracovává a ukládá soubory, a poskytuje některé informace o konfiguraci.

Platí to pro obrázky i pro jakýkoli jiný typ souboru, který lze nahrát. Všechny soubory jsou uloženy s odpovídajícím článkem ve jmenném prostoru "File:". Před MediaWiki 1.14 se místo toho používal jmenný prostor "Image:". "Image:" je stále zachován jako alias pro zpětnou kompatibilitu.

Nahrávání a používání obrázků

Podívejte se na Nápověda:Obrázky

Povolení nahrávání obrázků

Chcete-li nahrát soubory, musí být splněny tyto podmínky:

  1. MediaWiki musí mít povoleno nahrávání. Nastavte $wgEnableUploads true.
  2. Typ souboru musí být povolen. Více informací je na stránce: $wgFileExtensions .
  3. Uživatel musí být ve skupině s právem "upload" (nahrát). Ve výchozím nastavení je toto dáno všem přihlášeným uživatelům.

Nahrávání se provádí pomocí Special:Upload.

Viz také Příručka:Konfigurace nahrávání souborů , Příručka:Detekce typu MIME a Manual:Adding support for new filetypes

Relevantní parametry pro práci se soubory

Relevantní jsou tyto parametry:

Náhled obrázku

Syntaxe obrázků MediaWiki umožňuje dynamickou změnu velikosti a miniaturu obrázků (obecnou nápovědu k nahrávání souborů viz Příručka:Konfigurace nahrávání souborů ).

Miniatura obrázků vyžaduje buď ImageMagick nebo Knihovnu GD – ani jedno není součástí výchozí instalace MediaWiki.

GD

PHP je standardně dodáváno s povolenou grafickou knihovnou GD. K použití GD nebude vyžadovat žádnou konfiguraci ani úpravu.

Doporučuje se používat GD na systémech Windows.

GD lze stáhnout na https://libgd.github.io/. V posledních verzích PHP to není vyžadováno.

ImageMagick

V MediaWiki povolte ImageMagick v LocalSettings.php nastavením $wgUseImageMagick na true.

ImageMagick lze stáhnout od https://imagemagick.org/.

Jakmile je ImageMagick nainstalován, musíte povolit ImageMagick a nasměrovat MediaWiki na program convert nebo convert.exe na vašem počítači na LocalSettings.php takto:

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

Pokud používáte ImageMagick, nastavte $wgUseImageMagick v LocalSettings.php na true. Ujistěte se, že příkaz je spustitelný procesem webového serveru. Například uživatelé Windows budou chtít změnit výchozí nastavení na "C:\ImageMagick\convert.exe" (nebo podobné).

Chcete-li znovu vytvořit staré soubory miniatur před použitím ImageMagick, můžete použít $wgThumbnailEpoch .

Pokud se vykreslování nezdaří, zkontrolujte a zvyšte $wgMaxShellMemory .

Pro řešení problémů se podívejte na stránku nápovědy Miniatury obrázků nefungují.

GraphicsMagick lze také použít jako alternativu k ImageMagick. Budete muset nastavit $wgCustomConvertCommand na následující. Například:

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

Formáty obrázků

GIF

Pro zobrazení náhledů GIF-Animations pod Windows musíte nainstalovat ImageMagick, jak je popsáno výše.

SVG

 
Prezentace Wikimania 2016 o Dynamic SVG

MediaWiki podporuje vykreslování obrázků SVG: Pokud je povoleno, lze obrázky SVG používat jako jiné obrázkové soubory – automaticky se vykreslí jako soubor PNG a podle potřeby se za běhu vytvoří miniatury. Pokud jste na sdíleném hostiteli a nemáte předinstalovaný vykreslovací modul SVG, měli byste pravděpodobně požádat svého poskytovatele, aby vám jej nainstaloval.

Chcete-li povolit podporu SVG:

  1. Povolte nahrávání souborů SVG v souboru LocalSettings.php: $wgFileExtensions [] = 'svg'; Upozorňujeme, že MediaWiki z bezpečnostních důvodů odmítne soubory SVG obsahující JavaScript.
    Pokud se zobrazí chyba, že soubor je poškozený, ujistěte se, že detekce typu mime funguje správně.
  2. Přidejte $wgSVGConverter do LocalSettings.php a nastavte renderer, který chcete použít.
    Dostupné možnosti jsou ImageMagick, ImagickExt, sodipodi , inkscape, batika, rsvg a imgserv.
    Například: $wgSVGConverter = 'ImageMagick';
    • Pokud převaděč není v systémové cestě, musíte zadat adresář, který obsahuje program pomocí $wgSVGConverterPath ..
    • librsvg je rychlé, ale nepříliš přesné. Záleží na velkém počtu knihoven. Chcete-li automaticky nainstalovat všechny tyto knihovny, můžete použít správce balíčků. Projekty Wikimedie používají rsvg.
    • Batik je nejpřesnější dostupný renderer SVG, i když jeho vyhlazování někdy není optimální. Jeho analýza SVG je přísnější, což způsobuje, že odmítá "téměř platné" soubory SVG, které ostatní renderery přijímají (např. commons:File:UbuntuCoF.svg). Batik se spoléhá na Javu a je mnohem pomalejší než rsvg, i když to nemusí být velký problém, pokud neustále nepřidáváte soubory SVG. Viz SVG benchmarks . Spuštění vyžaduje hodně práce, pokud není součástí vaší distribuce.
    • Inkscape také dělá přesnou práci s SVG, pomohl rychlosti rsvg, ale byl navržen pro interaktivní grafické použití. Nicméně přichází s inkview, což je prohlížeč/převaděč – vyžaduje zapisovatelný domovský adresář pro uživatele, pod kterým je spuštěn. Protože bude spuštěn jako uživatel www nebo něco podobného, ​​pokusí se vytvořit adresáře .inkscape/ a .gnome2/ v odpovídajícím domovském adresáři a v tichosti selže, havaruje nebo visí na neurčito, pokud to nebude možné. Inkscape je vhodnější než rsvg (a) na Windows (dodává se jako samostatný balíček) nebo (b), pokud máte v Inkscape nakreslená důležitá SVG, která se v rsvg nevykreslují správně. Inkscape má stejně komplikovaný řetězec závislostí jako librsvg – používejte pouze v případě, že je ve vaší distribuci nebo je k dispozici jako kompletní samostatný balíček.
    • Sodipodi je program, ze kterého byl vytvořen Inkscape. Platí stejné úvahy. Sodipod již není v aktivním vývoji.
    • Od verze 6.x.x ImageMagick vykresluje SVG, ale nedokonale. Toto je výchozí nastavení, ale pokud je to možné, vyhněte se mu. Nicméně to funguje. V systému Windows je třeba nastavit $wgConvertPath, aby nedošlo ke konfliktu s vlastním convert.exe systému Windows. Jednoduchou alternativou v tomto scénáři je přidat do LocalSettings.php řádek $wgSVGConverters['ImageMagick'] = '"' . $wgImageMagickConvertCommand . '" -background white -thumbnail $widthx$height^! $input PNG:$output';, který také umožňuje mezery v cestě.
      • Aby se předešlo chybám při vytváření náhledů pomocí ImageMagick, pokud je ≥ 7.0.9-25, pak musí být Inkscape také ≥ 1.x.x. Podobně, pokud je ImageMagick < 7.0.9-25, pak Inkscape musí být také < 1.x.x. Viz ImageMagick problém.
    • PHP rozšíření Imagick podporuje vykreslování SVG, platí však stejné úvahy jako pro běžný ImageMagick.
    • Knihovna GD není schopna převádět obrázky SVG do formátu PNG, alespoň podle blogu Joena Asmussena z června 2008 NoScope.
    • Více než 98 % webových prohlížečů má alespoň základní podporu pro přímé zobrazování souborů SVG, ale MediaWiki toto ve výchozím nastavení nepoužívá.[notes 1] Bez rozšíření NativeSvgHandler podporuje MediaWiki pouze vykreslování na straně klienta ve verzi 1.41 (vydáno v prosinci 2023) a novější, nastavením $wgSVGNativeRendering = true.

Nastavte $wgSVGConverter = false, pokud vykreslování SVG není potřeba a chcete, aby si uživatelé stáhli soubor svg, aby si jej mohli prohlédnout.

Řešení problémů

Pokud vidíte prázdný čtverec místo SVG (Chrome) nebo žádný obrázek (Firefox) a všechny odkazy PNG vedou k chybě 404 a nikde nevidíte žádnou další chybovou zprávu, zkontrolujte proměnnou $wgGenerateThumbnailOnParse . Nastavením na false může být transformace SVG vždy odložena. Ujistěte se, že jsou povoleny metody PHP proc_open a symlink (mohou být v php.ini zakázány z důvodu bezpečnosti nebo výkonu).


JPEG (použití GD)

Jednoduše přidejte následující řádek do LocalSettings.php, který způsobí automatický návrat do knihovny GD.

$wgUseImageMagick = false;

Chyby s miniaturami JPEG viz JPEG (pomocí GD).

TIFF

Generování miniatur souborů TIFF vyžaduje MediaWiki 1.15.0 nebo novější.

  1. Povolte nahrávání souborů TIFF v souboru LocalSettings.php: $wgFileExtensions [] = 'tif';
  2. Přidejte $wgTiffThumbnailType LocalSettings.php a nastavte buď na jpg nebo png, abyste určili, jaký typ miniatury chcete vygenerovat.
  3. Vytváření náhledů souborů TIFF může vyžadovat systémové prostředky, které přesahují ty, které jsou potřebné pro vytváření náhledů souborů JPEG, GIF nebo PNG. Zvažte vhodná nastavení pro $wgMaxImageArea a $wgMaxShellMemory

DjVu


Mazání obrázků

Soubory, jako jsou stránky wiki, mohou smazat pouze uživatelé s oprávněním Mazání stránek (delete)" (ve výchozím nastavení správci). Mazání souborů se provádí smazáním příslušné popisné stránky (nebo kliknutím na odkaz smazat vše v tabulce Historie souboru").

Mazání jednotlivých revizí

Pokud byl soubor změněn, existuje historie revizí souborů, která se zobrazí na stránce článku o souboru. Každá revize má odkaz smazat. Pokud na toto klepnete, revize a soubor se odstraní.

Verze souborů jsou odděleny od stránky historie na stránce s popisem souboru.

Informace o starých revizích souborů jsou uloženy v tabulce oldimage , zatímco informace o starých revizích stránek jsou uloženy v tabulce revision .

Obnovení souborů

Soubory lze obnovit úplně stejným způsobem jako normální stránky wiki. Adresář, ve kterém jsou uloženy smazané soubory, je definován na stránce Příručka:$wgDeletedDirectory . Informace o smazaných obrázcích jsou uloženy v tabulce filearchive .

Mazání archivovaných souborů

Od verze MediaWiki 1.11 se smazané obrázky ve výchozím nastavení stále ukládají na server. Pokud chcete smazat vybrané archivované obrázky, můžete tak učinit pomocí skriptu údržby eraseArchivedFile.php . Pokud je chcete všechny smazat úplně, můžete to udělat pomocí skriptu deleteArchivedFiles.php . Pokud smažete archivované soubory, nemůžete již tyto soubory obnovit.

Důvody pro smazání souboru

Pokud se rozhodnete smazat soubor, jak je popsáno nad, budou uživatelé požádáni, aby uvedli důvod smazání. Dostupné důvody lze upravit na MediaWiki:Filedelete-reason-dropdown vaší wiki.

Úložiště dat

Při každém nahrání obrázku se vytvoří několik věcí:

  1. Článek ve jmenném prostoru souboru s názvem souboru, např. Soubor:MyPicture.png. Tato stránka je uložena a lze ji upravovat jako kteroukoli jinou stránku.
  2. Soubor samotný je uložen ve složce systémových souborů s mezerami sloučenými a nahrazenými _.
  3. Je-li to nutné a jsou k dispozici miniatury, vytvoří se v případě potřeby miniaturní verze souboru (například pro použití na stránce s popisem souboru). Ty jsou uloženy v adresáři thumb adresáře s obrázky, v samostatném adresáři pro každý hlavní soubor.

Pokud je $wgHashedUploadDirectory povoleno (ve výchozím nastavení), MediaWiki vytvoří několik podadresářů v adresáři obrázků.

Názvy adresářů jsou z prvních dvou znaků hash md5 konečného názvu souboru.

Složky

Všechny obrazové soubory jsou uloženy ve složce určené $wgUploadPath (standardně images/).

Popis pojmenovaných podsložek obrázků:

archive
Toto je místo pro ukládání souborů, které byly nahrazeny novějšími verzemi.
temp
Slouží k dočasnému ukládání souborů během nahrávání obrázků. (Kvůli úkol T11018 nemusí být tyto soubory vždy automaticky smazány).
thumb
Miniatury (automaticky generované) pro soubory. Pokud jsou odstraněny, jsou v případě potřeby automaticky obnoveny.

V závislosti na konfiguraci mohou existovat další podsložky obrázků:

math
Složka pro uložení vašeho vyrenderovaného TeXového vstupu, viz také Rozšíření:Math nebo Příručka:Math.
x/xy
Pokud je $wgHashedUploadDirectory nastaveno na true (což je výchozí nastavení), obrázky budou uloženy v podsložkách obrázků, takže cesty k souborům budou vypadat jako images/a/ab/filename.jpg. Další podrobnosti o tom, proč by to mohlo být žádoucí a jak tento systém funguje, najdete v části Příručka:$wgHashedUploadDirectory .

Databázové tabulky

  • Stránka s popisem souboru je uložena jako jakákoli stránka v tabulkách stránek, textu, revizí atd.
  • image - Obsahuje některá metadata, jako je velikost souboru a datum nahrání.
  • oldimage - Zde jsou uloženy informace o souborech, které byly nahrazeny novějšími verzemi.
  • filearchive - Obsahuje informace o smazaných souborech.
  • imagelinks - Zaznamenává, které stránky používají soubor.

Využití místa

Soubory potřebují podstatně více místa než články. Následující výpočty předpokládají se servery Linux/Unix velikosti bloku 4 kB.

Výchozí nastavení je $wgHashedUploadDirectory = true.

Požadavky na prostor pro všechny adresáře:

  • adresáře obrázků: 0-f/x0-f: max. 16*16 = 256 adresářů = 256*4 kB = 1024 kB
  • archivní adresáře: 0-f/x0-f: max. 16*16 = 256 adresářů = 256*4 KB = 1024 KB
  • adresáře miniatur: 0-f/x0-f: max. 16*16 = 256 adresářů = 256*4 kB = 1024 kB
  • dočasné adresáře: 0-f/x0-f: max. 16*16 = 256 adresářů = 256*4 kB = 1024 kB

Základní množství místa potřebného bez nahraných obrázků je tedy teoreticky 4 MB (ačkoli adresáře se vytvářejí pouze v případě potřeby).

Pro každý soubor potřebujeme:

  • velikost původního souboru obrázku + průměrná režie 2 KB

Pro soubory, které je třeba vytvořit miniaturou:

  • velikost vytvořené miniatury (miniatur) + průměrná režie 2 kB (každá)
  • adresář pro náhledy (4KB) (každý obrázek má svůj vlastní adresář náhledů)

Příklady:

  • obrázek 20778 bajtů png (malá velikost, bez miniatury): 24 KB pro obrázek: Celkem 24 KB
  • obrázek 123 000 bajtů jpeg (velká velikost, automatická miniatura): 124 KB pro obrázek, 4 KB pro adresář s miniaturou, 64 KB pro miniaturu: Celkem: 192 KB

Přístup k souboru

Nahrané soubory jsou obecně poskytovány přímo webovým serverem, nikoli prostřednictvím MediaWiki. I když může existovat minimální úroveň zabezpečení díky utajení s šifrováním cesty (např. /c/c4/...), pokud je nastaveno $wgHashedUploadDirectory , lze cestu snadno vyčíst z názvu souboru a neposkytuje skutečnou ochranu.

Omezení přístupu na autorizované uživatele viz Příručka:Autorizace obrázků .

Nahrání formulář

Viz dokumentace o konfiguraci formuláře pro nahrávání.

Licencování

MediaWiki allows licenses to be added to files uploaded from the Special:Upload page. The list of licenses that appear in the license selection dropdown can be edited on the MediaWiki:Licenses page by a sysop.

The page should be a bulleted list of items, and can have sub-items. Each item can have one or more parameters, with the parameter separated by the pipe character (|).

To make headers/categories, use only one parameter in a list item. The text will be what appears in the dropdown list, and will appear greyed-out and unclickable.

To add license options, two or more parameters are required. The first parameter will be the template name to use, without the double square brackets. The last parameter will be what appears in the dropdown list for that license. Any additional parameters between the first and last parameters will be passed as arguments to the template. When a license is selected, a preview of what it would look like on the final page is shown in the upload wizard.

Below is a simple example (not using real templates) of how MediaWiki:Licenses should be formatted:

* no-lic|No license.
* Made by me:
** self-lic|And it can only be used on this wiki.
** self-lic|free=yes|And I allow it to be used anywhere.
* Made by someone else:
** pd-lic|It's in the public domain.
** copyright-lic|It's copyrighted.
** cc-lic|It uses some CreativeCommons license.
** cc-lic|by-sa|It uses the CC-BY-SA license.

The above assumes each template ending in "-lic" exists, where some of those templates take positional arguments such as "by-sa" and others take named arguments such as "free=yes". Selecting the "And I allow it to be used anywhere" option, for example, would add the following text to the page of the new file:

{{self-lic|free=yes}}

Sites like Wikipedia and WikiMedia Commons will also use the subst: tag, such as WikiMedia Common's usage of it below:

** subst:Template 2|flickrreview|subst:uwl|Image from Flickr and I do not know the license

"Template 2" is an actual template that will take two parameters (being template names) and surround them with double curly brackets so they get transcluded on the page of the new image. "uwl" is a template, whose documentation requires using it with the "subst:" tag instead of directly. The above will result in the following being added to the uploaded file's page:

{{flickrreview}}{{subst:uwl}}

On Wikipedia, substitution is used in other ways, such as adding a timestamp with the license at the time of upload.

Podrobný příklad ze skutečného světa najdete v Wikipedia:MediaWiki:Licences nebo Commons:MediaWiki:Licenses.

Cizí úložiště

Je možné přistupovat k souborům uloženým v cizích úložištích, aniž byste je museli nahrávat na wiki, nastavením pole $wgForeignFileRepos . Tato funkce nabízí několik možností:

  • ForeignAPIRepo přistupuje k souborům ze vzdálené instalace MediaWiki, jako je Wikimedia Commons, prostřednictvím svého API
  • ForeignDBRepo přistupuje k souborům prostřednictvím databáze a je užitečný pro vytváření wiki rodin
  • FSRepo přistupuje k souborům z místní složky

Ve všech případech by bylo možné vkládat soubory do stránky pomocí běžné obrázkové syntaxe a specifikovat název souboru v cizím úložišti. Upozorňujeme, že některé z výše uvedených implementací jsou stále experimentální a nemusí být vhodné pro produkční místa.

Poznámky

  1. Stránky Wikimedie také nespoléhají na vykreslování na straně klienta, a to navzdory požadavku, úkol T5593.