
Recherche avancée
Médias (2)
-
GetID3 - Bloc informations de fichiers
9 avril 2013, par
Mis à jour : Mai 2013
Langue : français
Type : Image
-
GetID3 - Boutons supplémentaires
9 avril 2013, par
Mis à jour : Avril 2013
Langue : français
Type : Image
Autres articles (74)
-
MediaSPIP version 0.1 Beta
16 avril 2011, parMediaSPIP 0.1 beta est la première version de MediaSPIP décrétée comme "utilisable".
Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
Pour avoir une installation fonctionnelle, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...) -
Amélioration de la version de base
13 septembre 2013Jolie sélection multiple
Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...) -
Mise à jour de la version 0.1 vers 0.2
24 juin 2013, parExplications des différents changements notables lors du passage de la version 0.1 de MediaSPIP à la version 0.3. Quelles sont les nouveautés
Au niveau des dépendances logicielles Utilisation des dernières versions de FFMpeg (>= v1.2.1) ; Installation des dépendances pour Smush ; Installation de MediaInfo et FFprobe pour la récupération des métadonnées ; On n’utilise plus ffmpeg2theora ; On n’installe plus flvtool2 au profit de flvtool++ ; On n’installe plus ffmpeg-php qui n’est plus maintenu au (...)
Sur d’autres sites (12498)
-
Padding thumbnail with color
I know, it’s been a while since I last blogged. This is because a lot of things are happening in my personal life. I recently relocated to London from Finland and started a new job. Things are quite busy but I will try to post an example now and then. In the meanwhile I would like to hear about sites using Imagick, so if your project is not super secret please post an url and maybe a small explanation what you’re doing with Imagick on the site. This is purely for my personal interest.
Anyway, to the point. Today’s example originates from a question asked by a user. How do I thumbnail the image inside given dimensions proportionally and fill the “blank” areas with a color ? Well, the answer is here
The code is for Imagick 2.1.0 but adapting to older versions should not be hard.
-
< ?php
-
/* Define width and height of the thumbnail */
-
$width = 100 ;
-
$height = 100 ;
-
-
/* Instanciate and read the image in */
-
$im = new Imagick( "test.png" ) ;
-
-
/* Fit the image into $width x $height box
-
The third parameter fits the image into a "bounding box" */
-
$im->thumbnailImage( $width, $height, true ) ;
-
-
/* Create a canvas with the desired color */
-
$canvas = new Imagick() ;
-
$canvas->newImage( $width, $height, ’pink’, ’png’ ) ;
-
-
/* Get the image geometry */
-
$geometry = $im->getImageGeometry() ;
-
-
/* The overlay x and y coordinates */
-
$x = ( $width - $geometry[’width’] ) / 2 ;
-
$y = ( $height - $geometry[’height’] ) / 2 ;
-
-
/* Composite on the canvas */
-
$canvas->compositeImage( $im, imagick: :COMPOSITE_OVER, $x, $y ) ;
-
-
/* Output the image*/
-
header( "Content-Type : image/png" ) ;
-
echo $canvas ;
-
-
?>
-
-
Creating buttons with Imagick
A fellow called kakapo asked me to create a button with Imagick. He had an image of the button and a Photoshop tutorial but unfortunately the tutorial was in Chinese. My Chinese is a bit rusty so it will take a little longer to create that specific button
The button in this example is created after this tutorial http://xeonfx.com/tutorials/easy-button-tutorial/ (yes, I googled “easy button tutorial”). The code and the button it creates are both very simple but the effect looks really nice.
Here we go with the code :
-
< ?php
-
-
/* Create a new Imagick object */
-
$im = new Imagick() ;
-
-
/* Create empty canvas */
-
$im->newImage( 200, 200, "white", "png" ) ;
-
-
/* Create the object used to draw */
-
$draw = new ImagickDraw() ;
-
-
/* Set the button color.
-
Changing this value changes the color of the button */
-
$draw->setFillColor( "#4096EE" ) ;
-
-
/* Create the outer circle */
-
$draw->circle( 50, 50, 70, 70 ) ;
-
-
/* Create the smaller circle on the button */
-
$draw->setFillColor( "white" ) ;
-
-
/* Semi-opaque fill */
-
$draw->setFillAlpha( 0.2 ) ;
-
-
/* Draw the circle */
-
$draw->circle( 50, 50, 68, 68 ) ;
-
-
/* Set the font */
-
$draw->setFont( "./test1.ttf" ) ;
-
-
/* This is the alpha value used to annotate */
-
$draw->setFillAlpha( 0.17 ) ;
-
-
/* Draw a curve on the button with 17% opaque fill */
-
$draw->bezier( array(
-
array( "x" => 10 , "y" => 25 ),
-
array( "x" => 39, "y" => 49 ),
-
array( "x" => 60, "y" => 55 ),
-
array( "x" => 75, "y" => 70 ),
-
array( "x" => 100, "y" => 70 ),
-
array( "x" => 100, "y" => 10 ),
-
) ) ;
-
-
/* Render all pending operations on the image */
-
$im->drawImage( $draw ) ;
-
-
/* Set fill to fully opaque */
-
$draw->setFillAlpha( 1 ) ;
-
-
/* Set the font size to 30 */
-
$draw->setFontSize( 30 ) ;
-
-
/* The text on the */
-
$draw->setFillColor( "white" ) ;
-
-
/* Annotate the text */
-
$im->annotateImage( $draw, 38, 55, 0, "go" ) ;
-
-
/* Trim extra area out of the image */
-
$im->trimImage( 0 ) ;
-
-
/* Output the image */
-
header( "Content-Type : image/png" ) ;
-
echo $im ;
-
-
?>
And here is a few buttons I created by changing the fill color value :
-
-
Creating a reflection
Here is a simple example of creating a reflection of an image. The reflection is created by flipping the image and overlaying a gradient on it. Then both, the original image and the reflection is overlayed on a canvas.
This example is created for Imagick 2.1.x but with a little tuning it should work with earlier versions.
-
< ?php
-
-
/* Read the image */
-
$im = new Imagick( "strawberry.png" ) ;
-
-
/* Thumbnail the image */
-
$im->thumbnailImage( 200, null ) ;
-
-
/* Create a border for the image */
-
$im->borderImage( "white", 5, 5 ) ;
-
-
/* Clone the image and flip it */
-
$reflection = $im->clone() ;
-
$reflection->flipImage() ;
-
-
/* Create gradient. It will be overlayd on the reflection */
-
$gradient = new Imagick() ;
-
-
/* Gradient needs to be large enough for the image
-
and the borders */
-
$gradient->newPseudoImage( $reflection->getImageWidth() + 10,
-
$reflection->getImageHeight() + 10,
-
"gradient:transparent-black"
-
) ;
-
-
/* Composite the gradient on the reflection */
-
$reflection->compositeImage( $gradient, imagick: :COMPOSITE_OVER, 0, 0 ) ;
-
-
/* Add some opacity */
-
$reflection->setImageOpacity( 0.3 ) ;
-
-
/* Create empty canvas */
-
$canvas = new Imagick() ;
-
-
/* Canvas needs to be large enough to hold the both images */
-
$width = $im->getImageWidth() + 40 ;
-
$height = ( $im->getImageHeight() * 2 ) + 30 ;
-
$canvas->newImage( $width, $height, "black", "png" ) ;
-
-
/* Composite the original image and the reflection on the canvas */
-
$canvas->compositeImage( $im, imagick: :COMPOSITE_OVER, 20, 10 ) ;
-
$canvas->compositeImage( $reflection, imagick: :COMPOSITE_OVER,
-
20, $im->getImageHeight() + 10 ) ;
-
-
/* Output the image*/
-
header( "Content-Type : image/png" ) ;
-
echo $canvas ;
-
-
?>
The source image :
And the result :
P.S. Please send me some new images which I can use in these examples
-