imagegd2(): GD2 image support has been disabled

Rybajz
Člen | 9
+
0
-

Ahoj,
v PHP 7.4 dostávám zvláštní chybu při práci s obrázky:

imagegd2(): GD2 image support has been disabled

File: …/vendor/nette/utils/src/Utils/Image.php:698

695:        public function __clone()
696:        {
697:            ob_start(function () {});
698:            imagegd2($this->image);
699:            $this->setImageResource(imagecreatefromstring(ob_get_clean()));
700:        }

Používám verzi Nette 3.0. Nevěděl by někdo, kde může být problém?

GD mám v php povoleno:(

Milo
Nette Core | 1256
+
0
-

Zkus se podívat do výpisu phpinfo()

David Grudl
Nette Core | 7781
+
+1
-

Ta chyba říká, že jenom není povolena práce s formátem .GD, tedy např. funkce imagegd2() co se používá pro klonování. Proč to tak je netuším.

nightfish
Člen | 268
+
+1
-

Je možné, že máš libgd ve verzi 2.3.3, ve které byla ve výchozí konfiguraci pro build vypnuta podpora pro formát gd/gd2. Je to chyba, která bude pravdpodobně pro libgd 2.3.4 revertnuta/opravena, nicméně pokud jsem správně pochopil, tak pro libgd 2.4 chtějí tuto změnu (vypnutí podpora gd/gd2 ve výchozí konfiguraci buildu) opět aplikovat – otázka je, jak se k ní postaví tvůrci balíčků pro PHP, jestli budou podporu pro vypnuté formáty zapínat explicitně v rámci buildu či nikoliv.

Kontext:
https://github.com/…d/issues/428#…
https://github.com/…bgd/pull/779

Rybajz
Člen | 9
+
0
-

@nightfish jj přesně tuhle verzi mám. Instaloval jsem PHP přes brew na mac os. Takže teď nevím jak se k tomu postavit. Jestli čekat na 2.3.4 nebo předělat práci s obrázky v aplikaci.

Siki
Člen | 9
+
0
-

Mám stejný problém. Po aktualizace Debianu se nainstalovala knihovna libgd 2.3.3.

Podle všeho je GD(2) starý formát a od verze 2.3.3 je “disabled” (viz https://github.com/…cussions/701#…).

Vyřešil jsem to zatím tak, že v souboru …/vendor/nette/utils/src/Utils/Image.php jsem přepsal funkci imagegd2() na imagejpeg(). Vím, není to správné řešení, ale pro rychlou opravu to funguje.

I na php.net je napsané, že imagegd(2) by mělo být použité jen pro vývoj a testování (https://www.php.net/…imagegd2.php)

David Grudl
Nette Core | 7781
+
+2
-

Zkusil jsem dát do nette/utils 3.2-dev klonování přes PNG, tak zkuste, jestli vám to funguje.