現在、phpとGDを使用して画像合成機能を作成テストを行っております。
その中で、透過部分で、うまく動いていなくご相談させていただきます。
全体の流れとして、CSVで金額を取得後数字一文字ずつ画像に変更し、1000の場合は1,000とコンマを入れようとしております。
$mi = 0; while ($mi <= (count($arr)-1)) { $name = $arr[$mi]['0']; $price = $arr[$mi]['1']; $m_price = $arr[$mi]['2']; $text = $arr[$mi]['3']; $free = $arr[$mi]['4']; //number array 初期化 $number = array(); //金額切り分け$number に一文字ずつ配列格納処理 for($i = 0; $i <= mb_strlen($price)-1 ; $i++) { $number[] = $price[$i]; } //金額画像最大横幅取得 $yen = imagecreatefrompng('common/'.'f_en.png'); $number_width = imagesx($yen); $number_height = 0; for ($i=0; $i < count($number); $i++) { $number_image = imagecreatefrompng('common/'.'n_'.$number[$i].'.png'); $width = imagesx( $number_image ); $height = imagesy( $number_image ); $number_width = $number_width + $width; if($height > $number_height){ $number_height = $height; } } $im = imagecreatetruecolor ($number_width,$number_height); imagealphablending($im, false); $wposition = 0; $hposition = 0; imagecopy($im,$yen,$wposition,$hposition,0,0,imagesx($yen),imagesy($yen)); $wposition = imagesx($yen); $count = count($number); for ($i=0; $i < $count; $i++) { $number_image = imagecreatefrompng('common/'.'n_'.$number[$i].'.png'); imagecopy($im,$number_image,$wposition,$hposition,0,0,imagesx($number_image),imagesy($number_image)); if($count > 3 and $i == 1 or $i ==4){ $comma_image = imagecreatefrompng('common/comma.png'); imagecopy($im,$comma_image,$wposition - imagesx($comma_image)/2,$hposition,0,0,imagesx($comma_image),imagesy($comma_image)); } $wposition = $wposition + imagesx($number_image); } imagesavealpha($im, true); imagepng($im,'tmp/number/'.$name.'.png'); imagedestroy($im); $mi++; }
pngファイル生成時にimagealphablending
imagesavealpha
を使用して生成すると透過部分を重ねれると記事が書いてありましたので、試したのですが数字の部分に関してはうまく透過画像を生成することはできましたが、コンマを重ねる部分でコンマ部分が透過しなくて困っております。
コードの中身がテスト的に作っている部分も多くお見苦しいですが、何卒ご教授、ヒントをいただけましたら幸いです。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。