图像旋转,部署

【最佳答案】图像旋转比较简单 , 只需要给一个旋转角度参数就可以了 , 如果想要给背景填充个颜色 , 再给一个颜色参数即可 。(默认不给背景色为黑色) 代码如下 use GrafikaGrafika;use GrafikaColor;$editor = Grafik图像旋转1 图像旋转比较简单 , 只需要给一个旋转角度参数就可以了 , 如果想要给背景填充个颜色 , 再给一个颜色参数即可 。(默认不给背景色为黑色)
代码如下
use GrafikaGrafika;use GrafikaColor;$editor = Grafika::createEditor();$editor->open($image , 'yanying-smaller.jpg');$editor->rotate($image ,'45',new Color('#ff0000'));$editor->save($image,'333/yanying-rotate.jpg'); 最后一个背景颜色参数也是需要Color对象
部署2 下载下来的Grafika目录基本结构像下面这样:
不过composer下载下来的多一点儿 , 你只需要使用kosinix/grafika目录下的东西就好了 。
我们在grafika目录下建立一个index.php , 之后的操作都在这里 。
grafika给我们提供了一个非常好用的autoloader.php位于src目录下 。
在index.php中引入它 , (说明下 , 以下示例都需要引入这个autoloader.php文件 , 我们默认省略) , 下面就可以直接开发了 。
require_once 'src/autoloader.php'; 创建Editors3 1、createEditor grafika通过静态方法createEditor来创建一个editor 。它包含所有的图片处理方法 。
由于 , grafika是基于Imagick和GD库 , 所以使用createEditor方法会根据当前情况 , 自动选择所需要的图片处理库 。(推荐使用)
use GrafikaGrafika; // Import package$editor = Grafika::createEditor(); // Create the best available editor 2、Imagick Editor 当然你也可以直接使用Imagick类库 。
use GrafikaImagickEditor; // Import package$editor = new Editor(); // Imagick editor 注意:有些情况可能不支持该类库 , 你需要使用下面语句检查后使用 , (不过你最好直接使用方法1 , 就没这些事)
use GrafikaImagickEditor; // Import package$editor = new Editor(); // Imagick editorif( $editor->isAvailable() ) { // Safety check// Your code here} 3、GD Editor 你也可以直接使用GD库 , 也有些情况可能不支持 , 记得检查
use GrafikaGdEditor; // Import package$editor = new Editor(); // Gd editorif( $editor->isAvailable() ) { // Safety check// Your code here} 图片缩略图4 我们先准备一个原图
【图像旋转,部署】
接下来 , 假设我们要创建的缩略图长:200px宽200px
1、Resize Fit 等比例缩放类型 。那么就保证图片较长的一边不超过200px , 等比缩放 , 缩放后不填充背景 。
use GrafikaGrafika;$editor = Grafika::createEditor();$editor->open($image1 , 'yanying.jpg'); // 打开yanying.jpg并且存放到$image1$editor->resizeFit($image1 , 200 , 200);$editor->save($image1 , 'yanying1.jpg');$editor->open($image2 , 'yanying-h.jpg'); // 打开yanying.jpg并且存放到$image2$editor->resizeFit($image2 , 200 , 200);$editor->save($image2 , 'yanying2.jpg'); 当然不要忘了第一行的require
2、Resize Exact 固定尺寸缩放类型 。就是不管图片长宽比 , 全部缩小到200px , 可能导致图片变形 。
use GrafikaGrafika;$editor = Grafika::createEditor();$editor->open($image1 , 'yanying.jpg'); // 打开yanying.jpg并且存放到$image1$editor->resizeExact($image1 , 200 , 200);$editor->save($image1 , 'yanying1.jpg');$editor->open($image2 , 'yanying-h.jpg'); // 打开yanying.jpg并且存放到$image2$editor->resizeExact($image2 , 200 , 200);$editor->save($image2 , 'yanying2.jpg');
3、Resize Fill 居中剪裁 。就是把较短的变缩放到200px , 然后将长边的大于200px的部分居中剪裁掉 , 图片不会变形 。
use GrafikaGrafika;$editor = Grafika::createEditor();$editor->open($image1 , 'yanying.jpg'); // 打开yanying.jpg并且存放到$image1$editor->resizeFill($image1 , 200,200);$editor->save($image1 , 'yanying1.jpg');$editor->open($image2 , 'yanying-h.jpg'); // 打开yanying.jpg并且存放到$image2$editor->resizeFill($image2 , 200,200);$editor->save($image2 , 'yanying2.jpg');
4、Resize Exact Width 等宽缩放 。和第一种功能相似 , 最终宽为200px , 等比缩放 , 高度不管 。
use GrafikaGrafika;$editor = Grafika::createEditor();$editor->open($image1 , 'yanying.jpg'); // 打开yanying.jpg并且存放到$image1$editor->resizeExactWidth($image1 , 200);$editor->save($image1 , 'yanying1.jpg');$editor->open($image2 , 'yanying-h.jpg'); // 打开yanying.jpg并且存放到$image2$editor->resizeExactWidth($image2 , 200);$editor->save($image2 , 'yanying2.jpg');