1

CIアップロードライブラリを使用して画像をアップロードしていますが、透かしと画像のサムネイルに問題があり、idが最初に透かしを入れてからサムネイルを作成すると、元の画像に透かしを入れますが、サムネイルのサイズを変更しますが、透かし付きの元のサイズの画像を保持しませんまた、最初にサムネイルを作成してから透かしを入れると、正常に機能しますが、サムネイルにも透かしを入れたいのですが、ここに私のコードがあります

$this->do_thumb('file_name');
$this->watermark('file_name');

function watermark($filename){
        $image_cfg = array();
        $image_cfg['image_library'] = 'GD2';
        $image_cfg['source_image'] = 'upload/' . $filename;
        $image_cfg['wm_overlay_path'] = 'upload/watermark.png';
        $image_cfg['new_image'] = 'upload/mark_'.$filename;
        $image_cfg['wm_type'] = 'overlay';
        $image_cfg['wm_opacity'] = '10';
        $image_cfg['wm_vrt_alignment'] = 'bottom';
        $image_cfg['wm_hor_alignment'] = 'right';
        $image_cfg['create_thumb'] = FALSE;

        $this->image_lib->initialize($image_cfg);
        $this->image_lib->watermark();
        $this->image_lib->clear();

//        echo $this->image_lib->display_errors();
//        die();

    }

    function do_thumb($filename) {
        $image_cfg['image_library'] = 'GD2';
        $image_cfg['source_image'] = 'upload/' . $filename;
        $image_cfg['create_thumb'] = TRUE;
        $image_cfg['maintain_ratio'] = TRUE;
        $image_cfg['width'] = '200';
        $image_cfg['height'] = '175';
        $this->load->library('image_lib');
        $this->image_lib->initialize($image_cfg);
        $this->image_lib->resize();
        $this->image_lib->clear();
    }
4

1 に答える 1

2

watermark()最初に実行してから、透かし関数do_thumb()で削除する$image_cfg['new_image']か、使用する場合は$image_cfg['new_image']値をに渡しますdo_thumb()

$image_cfg['new_image']また、設定することを忘れないでください。do_thumb()そうすれば、新しいサムファイルが作成され、書き換えられません 。

親指に透かしが含まれていない理由は、透かし画像ではなく元の画像を親指の画像ソースとして使用しているためです。私が意味することを理解していただければ幸いです。cos英語は私の第一言語ではありません。phpそれは..

于 2013-02-12T11:47:26.647 に答える