本文整理汇总了PHP中imagegif函数的典型用法代码示例。如果您正苦于以下问题:PHP imagegif函数的具体用法?PHP imagegif怎么用?PHP imagegif使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了imagegif函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: generate
public function generate(array $array)
{
$frames = array();
$frame_delay = array();
foreach ($array['frames'] as $frame) {
$image = $this->_createImage($frame['image']);
if (array_key_exists('text', $frame)) {
foreach ($frame['text'] as $text) {
// Set defaults
$defaults = array("angle" => $this->_defaultAngle, "fonts" => $this->_defaultFont, "fonts-color" => $this->_defaultFontColor, "fonts-size" => $this->_defaultFontSize, "y-position" => $this->_defaultYPosition, "x-position" => $this->_defaultXPosition, "text" => null, "letter-spacing" => 0);
// Overwrite all the defaults with the arguments
$args = array_merge($defaults, $text);
$fontColor = is_array($args['fonts-color']) ? $args['fonts-color'] : $this->_hex2rgb($args['fonts-color']);
$text_color = imagecolorallocate($image, $fontColor[0], $fontColor[1], $fontColor[2]);
$this->imagettftextSp($image, $args['fonts-size'], $args['angle'], $args['x-position'], $args['y-position'], $text_color, $args['fonts'], $args['text'], $args['letter-spacing']);
}
}
$delay = array_key_exists('delay', $frame) ? $frame['delay'] : $this->_defaultDelay;
ob_start();
imagegif($image);
$frames[] = ob_get_contents();
$frame_delay[] = $delay;
// Delay in the animation.
ob_end_clean();
}
$repeat = array_key_exists('repeat', $array) ? $array['repeat'] : $this->_defaultRepeat;
$gif = new GIFEncoder($frames, $frame_delay, $repeat, 2, 0, 0, 0, 0, 'bin');
return $gif->GetAnimation();
}
示例2: fit
/**
* Fit small image to specified bound
*
* @param string $src
* @param string $dest
* @param int $width
* @param int $height
* @return bool
*/
public function fit($src, $dest, $width, $height)
{
// Calculate
$size = getimagesize($src);
$ratio = max($width / $size[0], $height / $size[1]);
$old_width = $size[0];
$old_height = $size[1];
$new_width = intval($old_width * $ratio);
$new_height = intval($old_height * $ratio);
// Resize
@ini_set('memory_limit', apply_filters('image_memory_limit', WP_MAX_MEMORY_LIMIT));
$image = imagecreatefromstring(file_get_contents($src));
$new_image = wp_imagecreatetruecolor($new_width, $new_height);
imagecopyresampled($new_image, $image, 0, 0, 0, 0, $new_width, $new_height, $old_width, $old_height);
if (IMAGETYPE_PNG == $size[2] && function_exists('imageistruecolor') && !imageistruecolor($image)) {
imagetruecolortopalette($new_image, false, imagecolorstotal($image));
}
// Destroy old image
imagedestroy($image);
// Save
switch ($size[2]) {
case IMAGETYPE_GIF:
$result = imagegif($new_image, $dest);
break;
case IMAGETYPE_PNG:
$result = imagepng($new_image, $dest);
break;
default:
$result = imagejpeg($new_image, $dest);
break;
}
imagedestroy($new_image);
return $result;
}
示例3: render
/**
* Displays the image
*
* @param integer $quality image render quality 1-100, default 100
* @access public
* @return void
*/
function render($quality = 100)
{
header('Content-type: image/' . $this->type);
@imageinterlace($this->handle, 1);
@imagegif($this->handle, NULL, $quality);
@imagedestroy($this->handle);
}
示例4: resizewidth
static function resizewidth($width, $imageold, $imagenew)
{
$image_info = getimagesize($imageold);
$image_type = $image_info[2];
if ($image_type == IMAGETYPE_JPEG) {
$image = imagecreatefromjpeg($imageold);
} elseif ($this->image_type == IMAGETYPE_GIF) {
$image = imagecreatefromgif($imageold);
} elseif ($this->image_type == IMAGETYPE_PNG) {
$image = imagecreatefrompng($imageold);
}
$ratio = imagesy($image) / imagesx($image);
$height = $width * $ratio;
//$width = imagesx($image) * $width/100;
// $height = imagesx($image) * $width/100;
$new_image = imagecreatetruecolor($width, $height);
imagecopyresampled($new_image, $image, 0, 0, 0, 0, $width, $height, $image_info[0], $image_info[1]);
$image = $new_image;
$compression = 75;
$permissions = null;
if ($image_type == IMAGETYPE_JPEG) {
imagejpeg($image, $imagenew, $compression);
} elseif ($image_type == IMAGETYPE_GIF) {
imagegif($image, $imagenew);
} elseif ($image_type == IMAGETYPE_PNG) {
imagepng($image, $imagenew);
}
if ($permissions != null) {
chmod($imagenew, $permissions);
}
}
示例5: return_image
function return_image($boolean)
{
if (function_exists('imagecreate')) {
$im = imagecreate(1, 1);
if ($boolean) {
imagecolorallocate($im, 0, 255, 0);
} else {
imagecolorallocate($im, 255, 0, 0);
}
header("Content-type: image/gif");
imagegif($im);
imagedestroy($im);
} else {
$grape_gif = '
R0lGODlhIAAgALMAAAAAAAAAgHCAkC6LV76+vvXeswD/ANzc3DLNMubm+v/6zS9PT6Ai8P8A////
/////yH5BAEAAAkALAAAAAAgACAAAAS00MlJq7046803AF3ofAYYfh8GIEvpoUZcmtOKAO5rLMva
0rYVKqX5IEq3XDAZo1GGiOhw5rtJc09cVGo7orYwYtYo3d4+DBxJWuSCAQ30+vNTGcxnOIARj3eT
YhJDQ3woDGl7foNiKBV7aYeEkHEignKFkk4ciYaImJqbkZ+PjZUjaJOElKanqJyRrJyZgSKkokOs
NYa2q7mcirC5I5FofsK6hcHHgsSgx4a9yzXK0rrV19gRADs=
';
$php_rules = 'iVBORw0KGgoAAAANSUhEUgAAABwAAAASCAMAAAB/2U7WAAAABl' . 'BMVEUAAAD///+l2Z/dAAAASUlEQVR4XqWQUQoAIAxC2/0vXZDr' . 'EX4IJTRkb7lobNUStXsB0jIXIAMSsQnWlsV+wULF4Avk9fLq2r' . '8a5HSE35Q3eO2XP1A1wQkZSgETvDtKdQAAAABJRU5ErkJggg==';
if ($boolean) {
$data = base64_decode($grape_gif);
header("Content-type: image/gif");
} else {
$data = base64_decode($php_rules);
header("Content-type: image/png");
}
echo $data;
}
}
示例6: createThumb
/**
* Create thumbnail image by php using the GD Library
*
* @since 1.0.0
*/
public static function createThumb($source_image, $destination_image_url, $width, $height, $quality, $crop = null, $prefix = null, $checksize = null)
{
//Set image ratio
list($w, $h) = getimagesize($source_image);
// resize
if ($crop === true) {
if ($checksize && ($w < $width or $h < $height)) {
$width = $w + 1;
$height = $h + 1;
$x = 0;
} else {
$ratio = max($width / $w, $height / $h);
$h = $height / $ratio;
$x = ($w - $width / $ratio) / 2;
$w = $width / $ratio;
}
} else {
if ($checksize && ($w < $width or $h < $height)) {
$width = $w;
$height = $h;
$x = 0;
} else {
$ratio = min($width / $w, $height / $h);
$width = $w * $ratio;
$height = $h * $ratio;
$x = 0;
}
}
if (preg_match("/.jpg/i", "{$source_image}") or preg_match("/.jpeg/i", "{$source_image}")) {
//JPEG type thumbnail
$destImage = imagecreatetruecolor($width, $height);
$sourceImage = imagecreatefromjpeg($source_image);
imagecopyresampled($destImage, $sourceImage, 0, 0, $x, 0, $width, $height, $w, $h);
imagejpeg($destImage, $destination_image_url, $quality);
imagedestroy($destImage);
} elseif (preg_match("/.png/i", "{$source_image}")) {
//PNG type thumbnail
$destImage = imagecreatetruecolor($width, $height);
$sourceImage = imagecreatefrompng($source_image);
imagealphablending($destImage, false);
imagecopyresampled($destImage, $sourceImage, 0, 0, $x, 0, $width, $height, $w, $h);
imagesavealpha($destImage, true);
imagepng($destImage, $destination_image_url);
} elseif (preg_match("/.gif/i", "{$source_image}")) {
//GIF type thumbnail
$destImage = imagecreatetruecolor($width, $height);
$sourceImage = imagecreatefromgif($source_image);
$bgc = imagecolorallocate($destImage, 255, 255, 255);
imagefilledrectangle($destImage, 0, 0, $width, $height, $bgc);
imagecopyresampled($destImage, $sourceImage, 0, 0, $x, 0, $width, $height, $w, $h);
if (function_exists('imagegif')) {
// Pour GIF
header('Content-Type: image/gif');
imagegif($destImage, $destination_image_url, $quality);
}
imagedestroy($destImage);
} else {
echo 'unable to load image source';
}
}
示例7: resizeAndSaveImage
public function resizeAndSaveImage($mimeType, $source_url, $destination_url)
{
// initial image buffer
if ($mimeType == 'image/jpeg') {
$image = imagecreatefromjpeg($source_url);
} elseif ($mimeType == 'image/gif') {
$image = imagecreatefromgif($source_url);
} elseif ($mimeType == 'image/png') {
$image = imagecreatefrompng($source_url);
}
// calc new image size keep aspect ratio
$original_width = imagesx($image);
$original_height = imagesy($image);
// if current image is bigger then 500px, resize it to make it smaller
$new_width = 500;
if ($original_width > $new_width) {
// calc new height by keep aspect ratio
$new_height = $this->getResizeHeightByWidth($original_height, $original_width, $new_width);
// resize with image buffer
$new_image = imagecreatetruecolor($new_width, $new_height);
imagecopyresampled($new_image, $image, 0, 0, 0, 0, $new_width, $new_height, $original_width, $original_height);
// saving image as full-alpha
imagealphablending($new_image, false);
imagesavealpha($new_image, true);
if ($mimeType == 'image/jpeg') {
imagejpeg($new_image, $source_url);
} elseif ($mimeType == 'image/gif') {
imagegif($new_image, $source_url);
} elseif ($mimeType == 'image/png') {
imagepng($new_image, $source_url);
}
imagedestroy($new_image);
}
imagedestroy($image);
}
示例8: output
/**
* Output an image. If the image is true-color, it will be converted
* to a paletted image first using imagetruecolortopalette().
*
* @param resource handle
* @return bool
*/
public function output($handle)
{
if (imageistruecolor($handle)) {
imagetruecolortopalette($handle, $this->dither, $this->ncolors);
}
return imagegif($handle);
}
示例9: resample
function resample()
{
// $filename = "$path.'/'.$filename";
$size = getimagesize($path . '/' . $filename);
list($width, $height) = $size;
$new_width = 100;
$new_height = 100;
$new_image = imagecreatetruecolor($new_width, $new_height);
// 判断格式
if ($hz == 'jpg') {
$image = imagecreatefromjpeg($path . '/' . $filename);
} elseif ($hz == 'png') {
$image = imagecreatefrompng($path . '/' . $filename);
} else {
$image = imagecreatefromgif($path . '/' . $filename);
}
// $image = imagecreatefromjpeg($filename);
imagecopyresampled($new_image, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
// 判断格式
if ($hz == 'jpg') {
imagejpeg($new_image, $path . '/' . $filename . 'R', 100);
} elseif ($hz == 'png') {
imagepng($new_image, $path . '/' . $filename . 'R', 100);
} else {
imagegif($new_image, $path . '/' . $filename . 'R', 100);
}
// imagejpeg($new_image, 'new.jpg', 100);
imagedestroy($new_image);
imagedestroy($image);
}
示例10: resize
function resize($width, $height)
{
list($w, $h) = getimagesize($_FILES['image']['tmp_name']);
$ratio = max($width / $w, $height / $h);
$h = ceil($height / $ratio);
$x = ($w - $width / $ratio) / 2;
$w = ceil($width / $ratio);
$path = 'photos/' . $width . 'x' . $height . '_' . $_FILES['image']['name'];
$imgString = file_get_contents($_FILES['image']['tmp_name']);
$image = imagecreatefromstring($imgString);
$tmp = imagecreatetruecolor($width, $height);
imagecopyresampled($tmp, $image, 0, 0, $x, 0, $width, $height, $w, $h);
/* Save image */
switch ($_FILES['image']['type']) {
case 'image/jpeg':
imagejpeg($tmp, $path, 100);
break;
case 'image/png':
imagepng($tmp, $path, 0);
break;
case 'image/gif':
imagegif($tmp, $path);
break;
default:
exit;
break;
}
return $path;
/* cleanup memory */
imagedestroy($image);
imagedestroy($tmp);
}
示例11: img_resize
function img_resize($src, $dest, $width, $height, $rgb = 0xffffff, $quality = 100)
{
if (!file_exists($src)) {
return false;
}
$size = getimagesize($src);
if ($size === false) {
return false;
}
$format = strtolower(substr($size['mime'], strpos($size['mime'], '/') + 1));
$icfunc = 'imagecreatefrom' . $format;
if (!function_exists($icfunc)) {
return false;
}
$x_ratio = $width / $size[0];
$y_ratio = $height / $size[1];
if ($height == 0) {
$y_ratio = $x_ratio;
$height = $y_ratio * $size[1];
} elseif ($width == 0) {
$x_ratio = $y_ratio;
$width = $x_ratio * $size[0];
}
$ratio = min($x_ratio, $y_ratio);
$use_x_ratio = $x_ratio == $ratio;
$new_width = $use_x_ratio ? $width : floor($size[0] * $ratio);
$new_height = !$use_x_ratio ? $height : floor($size[1] * $ratio);
$new_left = $use_x_ratio ? 0 : floor(($width - $new_width) / 2);
$new_top = !$use_x_ratio ? 0 : floor(($height - $new_height) / 2);
// если не нужно увеличивать маленькую картинку до указанного размера
if ($size[0] < $new_width && $size[1] < $new_height) {
$width = $new_width = $size[0];
$height = $new_height = $size[1];
}
$isrc = $icfunc($src);
$idest = imagecreatetruecolor($width, $height);
imagefill($idest, 0, 0, $rgb);
imagecopyresampled($idest, $isrc, $new_left, $new_top, 0, 0, $new_width, $new_height, $size[0], $size[1]);
$i = strrpos($dest, '.');
if (!$i) {
return '';
}
$l = strlen($dest) - $i;
$ext = substr($dest, $i + 1, $l);
switch ($ext) {
case 'jpeg':
case 'jpg':
imagejpeg($idest, $dest, $quality);
break;
case 'gif':
imagegif($idest, $dest);
break;
case 'png':
imagepng($idest, $dest);
break;
}
imagedestroy($isrc);
imagedestroy($idest);
return true;
}
示例12: watermark
function watermark($image, $mimeType, $imgWidth, $imgHeight, $watermark, $watermarkHeight, $watermarkWidth, $position = "center")
{
// Calculate the watermark position
switch ($position) {
case "center":
$marginBottom = round($imgHeight / 2);
$marginRight = round($imgWidth / 2) - round($watermarkWidth / 2);
break;
case "top-left":
$marginBottom = round($imgHeight - $watermarkHeight);
$marginRight = round($imgWidth - $watermarkWidth);
break;
case "bottom-left":
$marginBottom = 5;
$marginRight = round($imgWidth - $watermarkWidth);
break;
case "top-right":
$marginBottom = round($imgHeight - $watermarkHeight);
$marginRight = 5;
break;
default:
$marginBottom = 2;
$marginRight = 2;
break;
}
$watermark = imagecreatefrompng($watermark);
switch ($mimeType) {
case "jpeg":
case "jpg":
$createImage = imagecreatefromjpeg($image);
break;
case "png":
$createImage = imagecreatefrompng($image);
break;
case "gif":
$createImage = imagecreatefromgif($image);
break;
default:
$createImage = imagecreatefromjpeg($image);
break;
}
$sx = imagesx($watermark);
$sy = imagesy($watermark);
imagecopy($createImage, $watermark, imagesx($createImage) - $sx - $marginRight, imagesy($createImage) - $sy - $marginBottom, 0, 0, imagesx($watermark), imagesy($watermark));
switch ($mimeType) {
case "jpeg":
case "jpg":
imagejpeg($createImage, $image);
break;
case "png":
imagepng($createImage, $image);
break;
case "gif":
imagegif($createImage, $image);
break;
default:
throw new \Exception("A watermark can only be applied to: jpeg, jpg, gif, png images ");
break;
}
}
示例13: save
/**
* 图片保存方法
* @param $fileName 保存路径
* @return void
*/
function save($fileName)
{
$this->saveCode();
imagegif($this->validate, $fileName);
imagedestroy($this->validate);
imagedestroy($this->image);
}
示例14: save
public function save($sFileName)
{
$sExt = strtolower(array_pop(explode('.', $sFileName)));
if (!$sExt) {
return false;
}
if (!in_array($sExt, $this->aImageTypes)) {
return false;
}
$bResult = false;
switch ($sExt) {
case 'jpg':
case 'jpeg':
$bResult = imagejpeg($this->rRes, $sFileName, $this->nJpegQuality);
break;
case 'gif':
$bResult = imagegif($this->rRes, $sFileName);
break;
case 'png':
imagealphablending($this->rRes, false);
imagesavealpha($this->rRes, true);
$bResult = imagepng($this->rRes, $sFileName);
break;
}
if (!$bResult) {
return false;
}
return true;
}
示例15: outputPreview
/**
* @desc ������� ������ �����������
* @return
*/
function outputPreview($szContent, $szMime)
{
$source = imagecreatefromstring($szContent);
$nSourceHeight = imagesy($source);
$nSourceWidth = imagesx($source);
// �������� ������ � ������
if (DAO_IMAGE_THUMBNAIL_X == 0) {
$szHeight = DAO_IMAGE_THUMBNAIL_Y;
$szWidth = intval($nSourceWidth * DAO_IMAGE_THUMBNAIL_Y / $nSourceHeight);
} elseif (DAO_IMAGE_THUMBNAIL_Y == 0) {
$szWidth = DAO_IMAGE_THUMBNAIL_X;
$szHeight = intval($nSourceHeight * DAO_IMAGE_THUMBNAIL_X / $nSourceWidth);
} else {
$szWidth = DAO_IMAGE_THUMBNAIL_X;
$szHeight = DAO_IMAGE_THUMBNAIL_Y;
}
$thumb = imagecreatetruecolor($szWidth, $szHeight);
imagecopyresized($thumb, $source, 0, 0, 0, 0, $szWidth, $szHeight, $nSourceWidth, $nSourceHeight);
switch ($szMime) {
case 'image/jpeg':
imagejpeg($thumb);
break;
case 'image/png':
imagepng($thumb);
break;
case 'image/gif':
imagegif($thumb);
break;
default:
imagejpeg($thumb);
}
}