我有这个模型裁剪用户的图像
function crop_avatar()
{
$id = $this->tank_auth->get_user_id();
//get current avatar
$query = $this->db->get_where('user_profiles', array('id' => $id));
foreach ($query->result() as $row) {
$j[$row->avatar] = $row->avatar;
}
$config['image_library'] = 'gd';
$config['source_image'] = '.' . substr("$row->avatar", 18);
$config['x_axis'] = '10';
$config['y_axis'] = '60';
$this->load->library('image_lib');
$this->image_lib->initialize($config);
if ( ! $this->image_lib->crop())
{
echo $this->image_lib->display_errors();
}
// print_r($config);
}
生成此数组(通过print_r)
Array
(
[image_library] => gd
[source_image] => ./images/avatars/b0b623057.jpg
[x_axis] => 10
[y_axis] => 60
)
由于某些我不知道的原因 - 没有任何裁剪。原始图像通过该模型直接传递,并且不变。
我的服务器上有GD - 任何想法在这里可能有什么问题?
非常感谢。
答案 0 :(得分:7)
您需要定义希望裁剪图像的宽度和高度。
x_axis
和y_axis
配置值是现有图片中应该开始裁剪的点。
换句话说,您需要进行4次测量来裁剪图像:从哪里垂直开始(y_axis
),从哪里开始水平(x_axis
),在哪里垂直结束({{1水平结束(height
)
如果裁剪图片的某个尺寸与原始图片的尺寸相同,请不要忘记将width
设为maintain_ratio