私は現時点でウェブサイトのメディアライブラリを作成していますが、そのうちの1つはアップロードした画像を切り取った画像を作成できることです。codeigniterで画像を切り抜くGD2ライブラリはありません - GD2はイントラフレームです
私の問題は、しかし、私がしようとすると、画像をトリミングするとき、私は次のエラーを取得する、ここで
The path to the image is not correct.
だから私も、私は$config['source_image']
を変更します
$config['image_library'] = 'gd2';
$config['source_image'] = "/media/images/products/".$this->data['image'];
//die($config['source_image']);
$config['maintain_ratio'] = FALSE;
$config['x_axis'] = $this->input->post('x');
$config['y_axis'] = $this->input->post('y');
$config['width'] = $this->input->post('w');
$config['height'] = $this->input->post('h');
$config['dynamic_output'] = FALSE;
$config['create_thumb'] = TRUE;
$this->load->library('image_lib', $config);
if(!$this->image_lib->crop()) {
if($this->input->post('isAjax') == "1") {
echo json_encode($this->image_lib->display_errors());
} else {
$this->data['image_error'] = $this->image_lib->display_errors();
$this->template->build('/admin/media/crop', $this->data);
}
} else {
$filename = base_url()."media/images/products/".$this->data['image'];
$extension_pos = strrpos($filename, '.'); // find position of the last dot, so where the extension starts
$thumb = substr($filename, 0, $extension_pos) . '_thumb' . substr($filename, $extension_pos);
if($this->input->post('isAjax') == 1) {
echo json_encode($success = array('message' => 'Image Cropped'));
} else {
$this->data['success'] = "Image Cropped";
$this->template->build('/admin/media/crop', $this->data);
}
}
、私のコードで、これです以下に、
ちょうどこのメッセージを残ししかし$config['source_image'] = "./media/images/products/".$this->data['image'];
、
Your server does not support the GD function required to process this type of image.
何か根本的に間違っていますか?私はシンプルな.pngを切り抜こうとしているだけで、ファイルは確実に私のサーバー上に存在し、GD2がインストールされています。
GD2がインストールされている可能性がありますが、PNGサポートでコンパイルされましたか? GDがそこにあるからといって、すべての通常のファイル形式を処理できるわけではありません。 –
ドキュメントルートからの絶対パスを試しましたか? '$ _SERVER ['DOCUMENT_ROOT']を試してください。 'rest/of/path/to/file' ' –
はGD_INFOがサポートするものを教えてくれるでしょうか?そして、私はこのマシンでPNGを前もって切り刻んだ。 – Udders