= 8 / 5) { $xStill = round($wStill / 2 - $hStill * 4 / 5); $yStill = 0; $wStill = round($hStill * 8 / 5); } else { $xStill = 0; $yStill = round($hStill / 2 - $wStill * 5 / 16); $hStill = round($wStill * 5 / 8); } imagecopyresampled($imagePoster, $imageStill, 0, 0, $xStill, $yStill, 80, 50, $wStill, $hStill); /* $color = imagecolorallocate($imagePoster, $rPoster + 128, $gPoster + 128, $bPoster + 128); imagettftext($imagePoster, 10, 0, 4, 60, $color, 'ttf/DINMit', 'Bla bla bla'); */ $imageForeground = imagecreatetruecolor(80, 128); $colorBlack = imageColorAllocate($imageForeground, 0, 0, 0); imagefilledrectangle($imageForeground, 0, 0, 79, 127, $colorBlack); $imageFont = imagecreatefrompng('png/font.png'); $imageForeground = writeString($imageForeground, $imageFont, $director, 'director'); $imageForeground = writeString($imageForeground, $imageFont, $title, 'title'); $imageForeground = writeString($imageForeground, $imageFont, substr($id, 0, 2) . strtoupper(substr($id, 2, 6)), 'id'); for ($y = 0; $y < 128; $y++) { for ($x = 0; $x < 80; $x++) { $rgb = imagecolorat($imagePoster, $x, $y); $rB = ($rgb >> 16) & 255; $gB = ($rgb >> 8) & 255; $bB = $rgb & 255; $rgb = imagecolorat($imageForeground, $x, $y); $rF = ($rgb >> 16) & 255; $gF = ($rgb >> 8) & 255; $bF = $rgb & 255; if ($rF + $gF + $bF) { $r = $rB + $rF / 2; $g = $gB + $gF / 2; $b = $bB + $bF / 2; $color = imagecolorallocate($imagePoster, $r, $g, $b); imagesetpixel($imagePoster, $x, $y, $color); } } } header('Content-Type: image/png'); imagepng($imagePoster); function writeString($imageForeground, $imageFont, $text, $type) { $wPoster = 80; $hPoster = 128; $xMargin = 4; $wFont = 64; $hFont = 128; if ($type == 'director') $width = 36; else if ($type == 'title') $width = 24; else $width = 12; $line = formatString($text, $width); if ($type == 'director') { while (count($line) > 3) { $string = explode(', ', $text); array_pop($string); $text = implode(', ', $string); $line = formatString($text, $width); } } $wLine = $wPoster - 2 * $xMargin; $hLine = round($wLine / $width * 2); foreach ($line as $key => $value) { $len = strlen($value); // die(($maxlen * $wFont) . '!'); $imageLine = imagecreatetruecolor($width * $wFont, $hFont); for ($i = 0; $i < $len; $i++) { $ord = ord(substr($value, $i, 1)); $x = ($ord % 16) * $wFont; $y = floor($ord / 16) * $hFont; imagecopy($imageLine, $imageFont, $i * $wFont, 0, $x, $y, $wFont, $hFont); } if ($type == 'director') $y = 63 - (count($line) - $key) * $hLine; else if ($type == 'title') $y = 66 + $key * $hLine; else $y = 113; imagecopyresampled($imageForeground, $imageLine, $xMargin, $y, 0, 0, $wLine, $hLine, $width * $wFont, $hFont); } return $imageForeground; } function formatString($string, $width) { $lines = count(explode("\n", wordwrap($string, $width))); while ($width > 0) { $width--; if (count(explode("\n", wordwrap($string, $width))) > $lines) { $width++; break; } } return explode("\n", wordwrap($string, $width)); } ?>