导航:首页 > 编程语言 > php图片裁剪插件

php图片裁剪插件

发布时间:2023-11-08 22:16:43

A. php裁剪 动态裁剪框,要求生成固定大小的图片

<?php
$sourcefile = 'x.jpg';
#目标宽度
$newwidth = 150;
#目标高度
$newheight = 120;
#目标比例
$newbili = $newwidth / $newheight;

#源图片宽高
list($width, $height) = getimagesize($sourcefile);

if($width / $height > $newbili){
#原图较长
$w = $width - $newbili * $height;
$h = $height;
$x = ($width - $w) / 2;
$y = 0;
}else{
#原图较宽
$w = $width;
$h = $height - $newbili * $width;
$x = 0;
$y = ($height - $h) / 2;
}

$source = imagecreatefromjpeg($sourcefile);
$thumb = imagecreatetruecolor($newwidth, $newheight);

imageresized($thumb, $source, 0, 0, $x, $y, $newwidth, $newheight, $w, $h);
imagejpeg($thumb, "a.jpg");

注:此程序未考虑原图比目标图片小的情况

B. php中的jcrop可以将选框移动到图片区域外面吗

搞清楚这个插件的原理之后,这个问题就迎刃而解了。
jcrop是在图片上选点也就老哗颤是图片的坐标,然后芦销把侍败坐标传到后台php进行图片的剪切操作。
只要你设置了外层是可以获取到坐标的,但是传到后台处理比较麻烦。

C. PHP 长方形图片 不变形 裁剪 生成 正方形

$x = (200-150)/2;
imageresampled($thumb, $img_r2, 0, 0, $x, 0, $thumb_w, $thumb_h, 150, 150);

请看imageresampled详细介绍:
imageresampled
(PHP 4 >= 4.0.6, PHP 5)

imageresampled — 重采样拷贝部分图像并调整大小

说明
bool imageresampled ( resource $dst_image, resource $src_image, int $dst_x, int $dst_y, int $src_x, int $src_y, int $dst_w, int $dst_h, int $src_w, int $src_h )

imageresampled() 将一幅图像中的一块正方形区域拷贝到另一个图像中,平滑地插入像素值,因此,尤其是,减小了图像的大小而仍然保持了极大的清晰度。如果成功则返回 TRUE,失败则返回 FALSE。

dst_image 和 src_image 分别是目标图像和源图像的标识符。如果源和目标的宽度和高度不同,则会进行相应的图像收缩和拉伸。坐标指的是左上角。本函数可用来在同一幅图内部拷贝(如果 dst_image 和 src_image 相同的话)区域,但如果区域交迭的话则结果不可预知。

注意: 因为调色板图像限制(255+1 种颜色)有个问题。重采样或过滤图像通常需要多于 255 种颜色,计算新的被重采样的像素及其颜色时采用了一种近似值。对调色板图像尝试分配一个新颜色时,如果失败我们选择了计算结果最接近(理论上)的颜色。这并不总是视觉上最接近的颜色。这可能会产生怪异的结果,例如空白(或者视觉上是空白)的图像。要跳过这个问题,请使用真彩色图像作为目标图像,例如用 imagecreatetruecolor() 创建的。

注意: 本函数需要 GD 2.0.1 或更高版本(推荐 2.0.28 及更高版本)。

D. php 裁切图片问题 求助

PHP做图片裁切

PHP做图片裁剪的原理是通过前台定位出要裁剪图片的左上角位置,及右下角位置的做标,如果有放大和缩小的话还要给出放大和缩小的百分比,以及要对哪一个图片进行操作,这几个值传到后台,在用PHP去处理!

前端图片坐标点的得到可以自己用JS去实现,如果你的JS写的不是很熟也没有关系,可以下载一个jsCropperUI这一个包里面有很多的DEMO,可以实现前台的拖曳效果了!

前台会有一个AJAX向后台发送数据,一般格式为x1="+position[0]+"&y1="+position[1]+"&x2="+position[2]+"&y2="+position[3]+"&r="+position[4]+"&id = imgid四个坐标,缩放值,要操作的ID

后PHP接收这个数据后,进行操作

$x1 = $_GET['x1'];
$y1 = $_GET['y1'];
$x2 = $_GET['x2'];
$y2 = $_GET['y2'];
$r = $_GET['r'];
if($x2<$x1||$y2<$y1){
return false;
}
$img="dog.jpg";

$im=imagecreatefromjpeg($img);
$percent = $r*0.01;
list($width, $height) = getimagesize($img);
$new_width = $width * $percent;
$new_height = $height * $percent;

$tempimg = imagecreatetruecolor($new_width,$new_height);
imageresampled($tempimg, $im,0,0,0,0, $new_width,$new_height, $width, $height);
imagejpeg($tempimg,"dog_temp.jpg");
ImageDestroy ($im);

$ims=$tempimg;
$srcW=ImageSX($ims);
$srcH=ImageSY($ims);
$top_x = $x1;
$top_y = $y1;
$bottom_x = $x2;
$bottom_y = $y2;
$newimg = imagecreatetruecolor($bottom_x-$top_x,$bottom_y-$top_y);
imageresampled($newimg, $ims,0,0,$top_x,$top_y, $srcW,$srcH, $srcW, $srcH);
imagejpeg($newimg,"dogs.jpg");
ImageDestroy ($ims);

echo 1;

成功后输出1让前台得到进行裁剪区域的刷新!这样就可以实现PHP裁剪图片的效果了!

阅读全文

与php图片裁剪插件相关的资料

热点内容
少儿计算机编程培训无聊吗 浏览:587
安卓界面更新时点击卡顿如何解决 浏览:771
日本十大漫画app哪个好用 浏览:876
做系统选择哪个文件夹 浏览:283
如何登陆mc服务器 浏览:799
华为无法定位服务器地址 浏览:963
编译原理第三版陈火旺课本图片 浏览:566
cad用什么解压缩软件 浏览:715
编译的函数模版 浏览:359
加密货币利率改变 浏览:226
复杂网络案例python 浏览:298
死命令的意思 浏览:689
哪个app可以听日语电台 浏览:103
谷轮压缩机15hp 浏览:289
python任意整数冒泡降序 浏览:30
医保卡的钱哪个app能看到 浏览:576
主服务器崩溃如何进行域迁移 浏览:317
学安卓用什么语言好 浏览:78
qt命令行 浏览:800
慕课app班级在哪里 浏览:140