2013-01-14 7 views
5

Ho bisogno di scrivere uno script per sfocare un'immagine. Questo non sarebbe un problema se non ne avessi bisogno per offenderlo davvero difficile.Il modo più veloce in PHP per applicare una forte sfocatura

Ora, il filtro sfocatura gaussiana di GD è davvero debole. E imageconvolution accetta solo le matrici 3x3 per qualche motivo quindi non posso generare gaussian matrix con raggio maggiore per una sfocatura più forte? Anche se potessi, non sono sicuro di quanto sarebbe veloce.

L'esecuzione di sfocatura gaussiana più volte fa il trucco, ma è davvero lento. Per ottenere l'effetto che sto cercando, ho bisogno di eseguirlo 40-100 volte su un'immagine, e, naturalmente, ci vogliono 10-20 secondi per finire.

C'è un modo per ottenere ciò che sto cercando in un tempo ragionevole utilizzando le librerie fornite in bundle con PHP?

Ecco l'effetto esatto. Tempo di generazione: 10,972307920456 secondi. 80 passaggi.

originale:

enter image description here

Processed:

enter image description here

+1

È possibile verificare il funzionamento di ImageMagick. Ha un'interfaccia nativa PHP: http://www.imagemagick.org/Usage/blur/ – ddinchev

+0

Ma ho bisogno che venga fornito in bundle con PHP, e purtroppo non lo fa. Sarei davvero felice se qualcuno fosse a conoscenza di alcuni algoritmi estremamente inaccurati ma veramente veloci che potrei eseguire sull'immagine per pixel. –

+1

Ma GD (quello che stai attualmente utilizzando) NON è in bundle con PHP. Ha solo wrapper per PHP come IM ... – ddinchev

risposta

0

bool Imagick::blurImage (float $radius , float $sigma [, int $channel ])

a). $radius Sfera raggio

b). $sigma Deviazione standard

c). $channel La costante Channeltype. Quando non vengono forniti, tutti i canali sono sfocati.

Problemi correlati