2016-05-18 7 views
0

私があなたを助けてくれることを願っています。私はアップロードされたイメージをテーマディレクトリに保存された別のイメージとマージするwordpressの関数を記述しようとしています。本質的に、透かしを入れる。私はほとんどそこにいるが、GD imagecreatefrompng()に問題がある。メソッドは動作しません。私はimagecreatefromjpegとimagecreatefromgifを試してみましたが、それらもうまくいかないようです。私が間違って何をしているのか?GDLibraryとの画像の結合

add_action('after_setup_theme','themename_bw_size'); 
function themename_bw_size() { 
    add_image_size('themename-bw-image', 500, 500, true); 
} 

add_filter('wp_generate_attachment_metadata','themename_bw_filter'); 
function themename_bw_filter($meta) { 
    $file = wp_upload_dir(); 
    $file = trailingslashit($file['path']).$meta['sizes']['themename-bw-image']['file']; 
    list($orig_w, $orig_h, $orig_type) = @getimagesize($file); 
    $image = wp_load_image($file); 


    // This works. Such work. 
    $stamp = imagecreatetruecolor(100, 100); 
    imagefilledrectangle($stamp, 0, 0, 99, 69, 0x0000FF); 
    imagefilledrectangle($stamp, 9, 9, 90, 60, 0xFFFFFF); 
    imagestring($stamp, 5, 20, 20, 'GDLibrary', 0x0000FF); 
    imagestring($stamp, 3, 20, 40, 'Sometimesworks', 0x0000FF); 

    // This doesn't work. Oh such want. 
    //$stamp = imagecreatefrompng(get_stylesheet_directory() . '/images/test.png); 


    imagecopymerge($image, $stamp, 150, 150, 0, 0, 200, 200, 100); //have to play with these numbers for it to work for you, etc. 

    switch ($orig_type) { 
    case IMAGETYPE_GIF: 
     imagegif($image, $file); 
     break; 
    case IMAGETYPE_PNG: 
     imagepng($image, $file); 
     break; 
    case IMAGETYPE_JPEG: 
     imagejpeg($image, $file); 
     break; 
    } 
    return $meta; 
} 
+0

あなたは何かエラーを受け取っていますか? – Andrew

+0

エラーはありません。 test.pngは含まれていません。 imagecopymerge関数は動作しています。私はちょうどそれがこの他のイメージを使用して行くように見えることができません。 – madanthropod

+0

'... '/ images/test.png);'閉じたアポストロフィーがありませんでした。 'error_reporting'と' display_errors'をオンにします。 – timclutton

答えて

0

これが解決しました。 get_stylesheet_directory()には "/ assets /"が必要です。奇妙だが真実。

関連する問題