it-swarm.dev

Změna velikosti obrázků na skutečnou velikost používanou v editoru?

Existuje způsob, jak změnit velikost obrázků na skutečnou velikost, kterou budou zobrazeny v příspěvku? Mám uživatele, kteří importují velký obrázek a pak je upravují ve vizuálním editoru. To je snadné, protože obraz stačí přetáhnout, dokud nedosáhne požadované velikosti, aniž by nejprve otevřel editor obrázků, změnil velikost obrázku, uložil jej a nahrál jako samostatnou přílohu. Samozřejmě, to někdy vede k obrazu, který je 100px široký v příspěvku, ale 1500px ve skutečnosti.

Existuje plugin, který to dělá, když je nový příspěvek uložen? Chtěl bych si ponechat existující obrázek v plné velikosti (pro propojení nebo pozdější změnu velikosti), ale stačí přidat další velikost (a uložit jej do objektu _wp_attachment_metadata), aby tento příspěvek měl obrázek ve správné velikosti a odkaz na plnou velikost přílohy.

Samozřejmě, že všechny stávající příspěvky by měly být také zpracovány jednou. <img> tagy tam mohou mít jen width, jen height, nebo žádný z nich: to by mělo být vše vyčištěno, takže všichni mají správný width, height a obraz takové velikosti.

20
Jan Fabry

Vytvořil jsem dva pluginy, které by měly vyřešit mé potřeby. V současné době jsou v počáteční fázi alfa a všechny komentáře jsou vítány.

Základní plugin je On-Demand Resizer . Tyto pluginy monitorují požadavky na neexistující soubory v adresáři uploads a v případě potřeby vytvoří obrázky požadované velikosti. Například image-200x100.jpg vytvoří a vrátí image.jpg, ale změní se na 200 x 100 pixelů. Obraz je uložen podle tohoto jména do adresáře, takže další požadavky jsou zpracovávány přímo serverem.

Druhý plugin, Změna velikosti img tagů , modifikuje <img> tagy, takže jejich src atributy zahrnují data o šířce a/nebo výšce. To umožňuje, aby první plugin sloužil správným obrázkům. Společně dělají to, co chci, a potřebuji pouze vytvořit funkci run-once, která převede všechny existující příspěvky, ale to by mělo být snadné (nechci se připojit k the_content pro něco, co by mělo běžet pouze jednou).

Třetí "bonusový" plugin, Virtuální mezilehlé obrazy , zachycují tvorbu mezilehlých obrázků při nahrávání nového obrázku ve WordPressu. Vzhledem k tomu, že jsou stále vytvořeny prvním pluginem, je-li to požadováno, to umožňuje zadat více velikostí obrázků, aniž by zabíral místo na disku, pokud nejsou skutečně používány. To není nutné pro první dva pracovat, ale byl to snadný doplněk, a to zdůrazňuje skutečnost, že jsem stále potřebují pracovat kolem editoru obrázků WordPress, ale budu dělat, když jsem vytvořit můj editor miniatur , který bude také používat první plugin.

11
Jan Fabry

Prohledal jsem adresář pro "resize" nebo "crop" (ten druhý pro další otázka ) a zaznamenal/a jsem své výsledky v veřejné tabulce Google . Vyhledávání v pluginech je velmi matoucí ve výsledkových číslech (poslední stránka hledání "resize" ukazuje "Zobrazeno 145-150 z 273 pluginů"), takže jsem možná vynechal pár. Semi-related notes: každý si myslí, že svět potřebuje další plugin pro slideshow. Zdá se, že málokdo si uvědomuje, že content_save_pre může být lepším filtrem, než aby mohl provádět těžké analýzy než the_content.

Žádný z těchto pluginů jsem zatím netestoval, ale zde je seznam pluginů, které, jak se zdá, dělají to, co chci. V závorkách jsem přidal číslo verze "Kompatibilní až".

Osobní myšlenky: První čtyři přepisují URL na dynamickou stránku (něco jako /wp-content/plugins/my-plugin/image.php?src=[original src]&w=100&h=50), s různými formami ukládání do mezipaměti. Dávám přednost reálnému obrazu, který je vytvořen podle potřeby, podobně jako je tomu v případě ImageScaler. Nicméně bych to rozdělil (a zahrnoval návrh hakre do komentářů) a nejprve přepište všechny adresy URL z /wp-content/uploads/2010/11/image.jpg na /wp-content/uploads/2010/11/image-100x50.jpg a pak nechte skript vytvořit chybějící obrázky. První požadavek na tento obrázek vytvoří obraz, všechny následující požadavky použijí tento vytvořený obraz. To také umožňuje rozdělení funkcí napříč různými zásuvnými moduly. Toto řešení zveřejním v samostatné odpovědi.

Tyto pluginy omezují obrázky na určitou maximální velikost (jak se liší od určení $content_width?):

  • JP-redesign-images , kontroluje jak hotlinked, tak nadrozměrné obrázky (pouze pokud jsou příliš velké, ne pokud jsou změněny) (3.0.1)
  • Hungred Image Fit , kontroluje příliš velké obrázky (3.0.0)

Následující plugin je zajímavý z jiných důvodů:

Toto je příspěvek komunity Wiki, takže jej můžete aktualizovat, pokud najdete nové pluginy.

4
Jan Fabry

Wordpress nabízí tři výchozí velikosti (malé, střední, velké), které lze konfigurovat. Pokud je použijete, Wordpress vytvoří kopie s upravenou velikostí. Je to asi dobrý styl používat tyto a nastavit číslo tak, aby se vešly do aktuálního stylu. Výsledkem jsou obrázky, které nemají různé velikosti po celé stránce a povolují globální úpravy při změně motivu.

0
Raphael

Nedávno vydaný Image Pro plugin vypadá, že to přesně dělá. Ještě jsem netestoval, demo vypadá velmi impozantně, všimněte si špatné kompatibility prohlížeče (pouze Firefox-momentálně).

0
Rarst

Co takhle použít proměnnou pro měření času a proměnných, aby se automaticky změnila velikost/rozměry a úrovně přiblížení? Tímto způsobem lze zachovat původní velikosti obrazu. Pokud potřebujete pár příkladů, dejte mi vědět.

0