2012-08-30 1 views
1

Cela peut sembler être une question dupliquée, mais je n'ai pas pu trouver exactement ce scénario. Peut-être que c'est faux.PHP + Imagick: Comment appliquer un dégradé à l'arrière-plan à une partie d'une image?

Mon problème est, disons que j'ai un carré, $ carré, de 100x100 pixels à l'intérieur d'une toile de 150x150. L'arrière-plan est transparent. J'ai cloné le carré puis j'ai recadré la partie sur laquelle je devais travailler ($ detail).

J'ai besoin d'appliquer un dégradé, de haut en bas, sur $ detail pour que la partie supérieure soit environ 60% blanche-transparente à 100% transparente au fond. Puis, pour composer $ detail sur $ image.

Je ne peux pas utiliser convert, seulement les fonctions php imagick.

Merci d'avance! Est-ce que

Répondre

0

convert a un opérateur de création spéciale dans les versions récentes pour produire des gradients, simplement appelés gradient: - ils sont mis en œuvre comme pseudo image formats.

L'utilisation de l'opérateur gradient: peut devenir assez complexe si vous voulez des dégradés non verticaux ou avec la transparence, alors lisez la documentation. Soyez conscient que la version sous-jacente de Image Magick fera une différence sur la façon dont vous devez vous y prendre.

Vous pouvez créer des images pseudo-format, en utilisant l'opérateur imagick: Imagick::newPseudoImage()

Une fois que vous avez le gradient à la bonne taille, vous pouvez le composer avec votre image $detail.

Généralement, mon conseil pour l'utilisation de choses comme IMagick, est d'obtenir la bonne commande en utilisant d'abord convert puis de le traduire vers l'interface.

Questions connexes