SimpleImage, PHP class per effettuare il resize o crop delle immagini, applicare filtri, watermark o testi.
Dal repository GitHub, ecco una risorsa molto utile per la gestione delle immagini da integrare nei nostri progetti.
Parliamo di SimpleImage, scaricabile da questo link. Richiede almeno PHP5.3 e le librerie GD installate sul server, ed ecco cosa può fare questa potente classe:
- Resize images (free resize, resize to width, resize to height, resize to fit)
- Crop images
- Flip/rotate/adjust orientation
- Adjust brightness & contrast
- Desaturate, colorize, pixelate, blur, etc.
- Overlay one image onto another (watermarking)
- Add text using a font of your choice
- Convert between GIF, JPEG, and PNG formats
- Strip EXIF data
Lo sviluppatore ne ha ben documentato l’utilizzo, ma ecco qualche esempio rapido:
Convertire la nostra immagine da JPG a GIF
$img = new abeautifulsite\SimpleImage('image.jpg'); $img->save('image.gif');
Ecco altri metodi usabili
// Flip the image horizontally (use 'y' to flip vertically) $img->flip('x'); // Rotate the image 90 degrees clockwise $img->rotate(90); // Adjust the orientation if needed (physically rotates/flips the image based on its EXIF 'Orientation' property) $img->auto_orient(); // Resize the image to 320x200 $img->resize(320, 200); // Trim the image and resize to exactly 100x75 $img->thumbnail(100, 75); // Shrink the image to the specified width while maintaining proportion (width) $img->fit_to_width(320); // Shrink the image to the specified height while maintaining proportion (height) $img->fit_to_height(200); // Shrink the image proportionally to fit inside a 500x500 box $img->best_fit(500, 500); // Crop a portion of the image from x1, y1 to x2, y2 $img->crop(100, 100, 400, 400); // Fill image with white color $img->fill('#fff'); // Desaturate (grayscale) $img->desaturate(); // Invert $img->invert(); // Adjust Brightness (-255 to 255) $img->brightness(100); // Adjust Contrast (-100 to 100) $img->contrast(50); // Colorize red at 50% opacity $img->colorize('#FF0000', .5); // Edges filter $img->edges(); // Emboss filter $img->emboss(); // Mean removal filter $img->mean_remove(); // Selective blur (one pass) $img->blur(); // Gaussian blur (two passes) $img->blur('gaussian', 2); // Sketch filter $img->sketch(); // Smooth filter (-10 to 10) $img->smooth(5); // Pixelate using 8px blocks $img->pixelate(8); // Sepia effect (simulated) $img->sepia(); // Change opacity $img->opacity(.5); // Overlay watermark.png at 50% opacity at the bottom-right of the image with a 10 pixel horizontal and vertical margin $img->overlay('watermark.png', 'bottom right', .5, -10, -10); // Add 32-point white text top-centered (plus 20px) on the image* $img->text('Your Text', 'font.ttf', 32, '#FFFFFF', 'top', 0, 20);