本文整理汇总了PHP中imageColorsForIndex函数的典型用法代码示例。如果您正苦于以下问题:PHP imageColorsForIndex函数的具体用法?PHP imageColorsForIndex怎么用?PHP imageColorsForIndex使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了imageColorsForIndex函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。
示例1: createCharImages
/**
* Creates an image for every code character.
*/
protected function createCharImages()
{
$counter = 0;
for ($i = 0, $j = strlen($this->codeWord); $i < $j; $i++) {
$char = $this->codeWord[$i];
$tempImageWidth = $this->fontSize * 2;
$tempImageHeight = $this->fontSize + 40;
// create image
$tempImage = imageCreate($tempImageWidth, $tempImageHeight);
$tempColor = imageColorAllocate($tempImage, $this->color2['red'], $this->color2['green'], $this->color2['blue']);
imageColorTransparent($tempImage, $tempColor);
// set font color
$fontColor = imageColorAllocate($tempImage, $this->fontColor['red'], $this->fontColor['green'], $this->fontColor['blue']);
// write text
imageTtfText($tempImage, $this->fontSize, 0, 10, $this->fontSize + mt_rand(25, 30), $fontColor, $this->fontFace, $char);
// morph text
if (CAPTCHA_FONT_MORPH) {
$tempImageHeight = 120;
$tempImage2 = imageCreate($tempImageWidth, 120);
$tempColor = imageColorAllocate($tempImage2, $this->color2['red'], $this->color2['green'], $this->color2['blue']);
imageColorTransparent($tempImage2, $tempColor);
$divisor = mt_rand(6, 7);
$quotient = mt_rand(4, 6);
$method = mt_rand(0, 1);
// morph text on x-axis
if ($method == 0) {
for ($y = 1; $y <= $tempImageHeight; $y++) {
$posX = sin($y / $divisor) * $quotient;
imageCopyMerge($tempImage2, $tempImage, $posX, $y, 0, $y, $tempImageWidth, 1, 100);
}
}
// morph text on y-axis
if ($method == 1) {
for ($x = 1; $x <= $tempImageWidth; $x++) {
$posY = sin($x / $divisor) * $quotient;
imageCopyMerge($tempImage2, $tempImage, $x, $posY, $x, 0, 1, $tempImageHeight, 100);
}
}
$image = $tempImage2;
} else {
$image = $tempImage;
}
// get text width and height
$positionX = 0;
for ($x = $tempImageWidth - 1; $x > 0; $x--) {
for ($y = $tempImageHeight - 1; $y > 0; $y--) {
$color = imageColorAt($image, $x, $y);
$colorArray = imageColorsForIndex($image, $color);
if ($colorArray['red'] == $this->fontColor['red'] && $colorArray['green'] == $this->fontColor['green'] && $colorArray['blue'] == $this->fontColor['blue']) {
$positionX = $x;
$x = 0;
$y = 0;
break;
}
}
}
$width = $positionX + 10;
$height = 100;
// create final char image
$this->chars[$counter] = imageCreate($width, $height);
$color2 = imageColorAllocate($this->chars[$counter], $this->color2['red'], $this->color2['green'], $this->color2['blue']);
imageColorTransparent($this->chars[$counter], $color2);
imageCopyMerge($this->chars[$counter], $image, 5, 5, 0, 0, $width, $tempImageHeight, 100);
$this->charWidth[$counter] = $width;
// destroy temp images
imageDestroy($tempImage);
if (CAPTCHA_FONT_MORPH) {
imageDestroy($tempImage2);
}
$counter++;
}
}
开发者ID:joaocustodio,项目名称:EmuDevstore-1,代码行数:75,代码来源:CaptchaImage.class.php
示例2: Colorize
function Colorize($IMG, $RGB)
{
imageTrueColorToPalette($IMG, true, 256);
$numColors = imageColorsTotal($IMG);
for ($x = 0; $x < $numColors; $x++) {
list($r, $g, $b) = array_values(imageColorsForIndex($IMG, $x));
$grayscale = ($r + $g + $b) / 3 / 0xff;
imageColorSet($IMG, $x, $grayscale * $RGB[0], $grayscale * $RGB[1], $grayscale * $RGB[2]);
}
}
开发者ID:habb0,项目名称:mobbo,代码行数:10,代码来源:badge.php
示例3: colorize
static function colorize($image, $rgb_code)
{
imageTrueColorToPalette($image, true, 256);
$num_colors = imageColorsTotal($image);
for ($x = 0; $x < $num_colors; $x++) {
list($r, $g, $b) = array_values(imageColorsForIndex($image, $x));
$gray_scale = ($r + $g + $b) / 3 / 0xff;
imageColorSet($image, $x, $gray_scale * $rgb_code[0], $gray_scale * $rgb_code[1], $gray_scale * $rgb_code[2]);
}
}
开发者ID:Zortex04,项目名称:habbo-web-cms,代码行数:10,代码来源:GroupImager.php
示例4: image_colorize
public function image_colorize($rgb)
{
imageTrueColorToPalette($this->imageResized, true, 256);
$numColors = imageColorsTotal($this->imageResized);
for ($x = 0; $x < $numColors; $x++) {
list($r, $g, $b) = array_values(imageColorsForIndex($this->imageResized, $x));
// calculate grayscale in percent
$grayscale = ($r + $g + $b) / 3 / 0xff;
imageColorSet($this->imageResized, $x, $grayscale * $rgb[0], $grayscale * $rgb[1], $grayscale * $rgb[2]);
}
return true;
}
开发者ID:WebPassions,项目名称:2015,代码行数:12,代码来源:php_image_magician.php
示例5: resize
/**
* Method to resize the current image.
*
* @param mixed $width The width of the resized image in pixels or a percentage.
* @param mixed $height The height of the resized image in pixels or a percentage.
* @param bool $createNew If true the current image will be cloned, resized and returned; else
* the current image will be resized and returned.
* @param integer $scaleMethod Which method to use for scaling
*
* @return JImage
*
* @since 11.3
* @throws LogicException
*/
public function resize($width, $height, $createNew = true, $scaleMethod = JImage::SCALE_INSIDE)
{
// Make sure the resource handle is valid.
if (!$this->isLoaded()) {
throw new LogicException('No valid image was loaded.');
}
// Sanitize width.
$width = $this->sanitizeWidth($width, $height);
// Sanitize height.
$height = $this->sanitizeHeight($height, $width);
// Prepare the dimensions for the resize operation.
$dimensions = $this->prepareDimensions($width, $height, $scaleMethod);
// Create the new truecolor image handle.
$handle = imagecreatetruecolor($dimensions->width, $dimensions->height);
// Allow transparency for the new image handle.
imagealphablending($handle, false);
imagesavealpha($handle, true);
if ($this->isTransparent()) {
// Get the transparent color values for the current image.
$rgba = imageColorsForIndex($this->handle, imagecolortransparent($this->handle));
$color = imageColorAllocate($this->handle, $rgba['red'], $rgba['green'], $rgba['blue']);
// Set the transparent color values for the new image.
imagecolortransparent($handle, $color);
imagefill($handle, 0, 0, $color);
imagecopyresized($handle, $this->handle, 0, 0, 0, 0, $dimensions->width, $dimensions->height, $this->getWidth(), $this->getHeight());
} else {
imagecopyresampled($handle, $this->handle, 0, 0, 0, 0, $dimensions->width, $dimensions->height, $this->getWidth(), $this->getHeight());
}
// If we are resizing to a new image, create a new JImage object.
if ($createNew) {
// @codeCoverageIgnoreStart
$new = new JImage($handle);
return $new;
// @codeCoverageIgnoreEnd
} else {
$this->handle = $handle;
return $this;
}
}
开发者ID:vuchannguyen,项目名称:hoctap,代码行数:53,代码来源:image.php
示例6: draw_slices
function draw_slices($x, $y, $angles, $colors)
{
$pie_count = count($angles);
$PIE_THICKNESS = $this->diameter * 0.075;
for ($j = $this->center_y + $PIE_THICKNESS; $j > $this->center_y; $j--) {
for ($from = 0, $p = 0; $p < $pie_count; $p++, $from = $to) {
$to = $from + $angles[$p];
if ($to > 360) {
$to = 360;
}
if ($to == $from) {
continue;
}
$color = $colors[$p];
$orig_colors = imageColorsForIndex($this->im, $color);
$dark_red = $orig_colors['red'] > 30 ? $orig_colors['red'] - 30 : $orig_colors['red'];
$dark_green = $orig_colors['green'] > 30 ? $orig_colors['green'] - 30 : $orig_colors['green'];
$dark_blue = $orig_colors['blue'] > 30 ? $orig_colors['blue'] - 30 : $orig_colors['blue'];
$new_color = ImageColorAllocate($this->im, $dark_red, $dark_green, $dark_blue);
ImageFilledArc($this->im, $this->center_x, $j, $this->diameter, $this->diameter, $from, $to, $new_color, IMG_ARC_PIE);
}
}
for ($from = 0, $p = 0; $p < $pie_count; $p++, $from = $to) {
$to = $from + $angles[$p];
$color = $colors[$p];
if ($to > 360) {
$to = 360;
}
if ($to == $from) {
continue;
}
ImageFilledArc($this->im, $this->center_x, $this->center_y, $this->diameter, $this->diameter, $from, $to, $color, IMG_ARC_PIE);
$from += $angles[$p];
}
}
开发者ID:fjpqzm,项目名称:ganglia-web,代码行数:35,代码来源:pie.php
示例7: resize
/**
* Method to resize the current image.
*
* @param mixed $width The width of the resized image in pixels or a percentage.
* @param mixed $height The height of the resized image in pixels or a percentage.
* @param boolean $createNew If true the current image will be cloned, resized and returned; else
* the current image will be resized and returned.
* @param integer $scaleMethod Which method to use for scaling
*
* @return KunenaImage
*
* @since 11.3
* @throws LogicException
*/
public function resize($width, $height, $createNew = true, $scaleMethod = self::SCALE_INSIDE)
{
$config = KunenaFactory::getConfig();
switch ($config->avatarresizemethod) {
case '0':
$resizemethod = 'imagecopyresized';
break;
case '1':
$resizemethod = 'imagecopyresampled';
break;
default:
$resizemethod = 'self::imageCopyResampledBicubic';
break;
}
// Make sure the resource handle is valid.
if (!$this->isLoaded()) {
throw new LogicException('No valid image was loaded.');
}
// Sanitize width.
$width = $this->sanitizeWidth($width, $height);
// Sanitize height.
$height = $this->sanitizeHeight($height, $width);
// Prepare the dimensions for the resize operation.
$dimensions = $this->prepareDimensions($width, $height, $scaleMethod);
// Instantiate offset.
$offset = new stdClass();
$offset->x = $offset->y = 0;
// Get truecolor handle
$handle = imagecreatetruecolor($dimensions->width, $dimensions->height);
// Center image if needed and create the new truecolor image handle.
if ($scaleMethod == self::SCALE_FIT) {
// Get the offsets
$offset->x = round(($width - $dimensions->width) / 2);
$offset->y = round(($height - $dimensions->height) / 2);
// Make image transparent, otherwise cavas outside initial image would default to black
if (!$this->isTransparent()) {
$transparency = imagecolorAllocateAlpha($this->handle, 0, 0, 0, 127);
imagecolorTransparent($this->handle, $transparency);
}
}
$imgProperties = self::getImageFileProperties($this->getPath());
if ($imgProperties->mime == MIME_GIF) {
$trnprt_indx = imagecolortransparent($this->handle);
if ($trnprt_indx >= 0 && $trnprt_indx < imagecolorstotal($this->handle)) {
$trnprt_color = imagecolorsforindex($this->handle, $trnprt_indx);
$trnprt_indx = imagecolorallocate($handle, $trnprt_color['red'], $trnprt_color['green'], $trnprt_color['blue']);
imagefill($handle, 0, 0, $trnprt_indx);
imagecolortransparent($handle, $trnprt_indx);
}
} elseif ($imgProperties->mime == MIME_PNG) {
imagealphablending($handle, false);
imagesavealpha($handle, true);
if ($this->isTransparent()) {
$transparent = imagecolorallocatealpha($this->handle, 255, 255, 255, 127);
imagefilledrectangle($this->handle, 0, 0, $width, $height, $transparent);
}
}
if ($this->isTransparent()) {
$trnprt_indx = imagecolortransparent($this->handle);
if ($trnprt_indx >= 0 && $trnprt_indx < imagecolorstotal($this->handle)) {
// Get the transparent color values for the current image.
$rgba = imageColorsForIndex($this->handle, imagecolortransparent($this->handle));
$color = imageColorAllocateAlpha($handle, $rgba['red'], $rgba['green'], $rgba['blue'], $rgba['alpha']);
} else {
$color = imageColorAllocateAlpha($handle, 255, 255, 255, 127);
}
// Set the transparent color values for the new image.
imagecolortransparent($handle, $color);
imagefill($handle, 0, 0, $color);
imagecopyresized($handle, $this->handle, $offset->x, $offset->y, 0, 0, $dimensions->width, $dimensions->height, $this->getWidth(), $this->getHeight());
} else {
call_user_func_array($resizemethod, array(&$handle, &$this->handle, $offset->x, $offset->y, 0, 0, $dimensions->width, $dimensions->height, $this->getWidth(), $this->getHeight()));
}
// If we are resizing to a new image, create a new KunenaImage object.
if ($createNew) {
// @codeCoverageIgnoreStart
$new = new KunenaImage($handle);
return $new;
// @codeCoverageIgnoreEnd
} else {
// Free the memory from the current handle
$this->destroy();
$this->handle = $handle;
return $this;
}
}
开发者ID:densem-2013,项目名称:exikom,代码行数:100,代码来源:image.php
示例8: crop
function crop($width, $height, $left, $top, $createNew = true, $scaleMethod = CKunenaImage::SCALE_INSIDE)
{
// Make sure the file handle is valid.
if (!is_resource($this->_handle) || get_resource_type($this->_handle) != 'gd') {
$this->setError(JText::_('COM_KUNENA_ATTACHMENT_ERROR_INVALID_FILE_HANDLE'));
return false;
}
// Sanitize width.
$width = $width === null ? $height : $width;
if (preg_match('/^[0-9]+(\\.[0-9]+)?\\%$/', $width)) {
$width = intval(round($this->getWidth() * floatval(str_replace('%', '', $width)) / 100));
} else {
$width = intval(round(floatval($width)));
}
// Sanitize height.
$height = $height === null ? $width : $height;
if (preg_match('/^[0-9]+(\\.[0-9]+)?\\%$/', $height)) {
$height = intval(round($this->getHeight() * floatval(str_replace('%', '', $height)) / 100));
} else {
$height = intval(round(floatval($height)));
}
// Sanitize left.
$left = intval(round(floatval($left)));
// Sanitize top.
$top = intval(round(floatval($top)));
// Create the new truecolor image handle.
$handle = imagecreatetruecolor($width, $height);
// Allow transparency for the new image handle.
imagealphablending($handle, true);
imagesavealpha($handle, true);
if ($this->isTransparent()) {
// Get the transparent color values for the current image.
$rgba = imageColorsForIndex($this->_handle, imagecolortransparent($this->_handle));
$color = imageColorAllocate($this->_handle, $rgba['red'], $rgba['green'], $rgba['blue']);
// Set the transparent color values for the new image.
imagecolortransparent($handle, $color);
imagefill($handle, 0, 0, $color);
imagecopyresized($handle, $this->_handle, 0, 0, $left, $top, $width, $height, $width, $height);
} else {
imagecopyresampled($handle, $this->_handle, 0, 0, $left, $top, $width, $height, $width, $height);
}
// If we are cropping to a new image, create a new CKunenaImage object.
if ($createNew) {
// Create the new CKunenaImage object for the new truecolor image handle.
$new = new CKunenaImage($handle);
return $new;
} else {
// Swap out the current handle for the new image handle.
$this->_handle =& $handle;
return true;
}
}
开发者ID:vuchannguyen,项目名称:hoctap,代码行数:52,代码来源:kunena.image.class.php
示例9: resize
public function resize($width, $height, $createNew = true, $scaleMethod = self::SCALE_INSIDE)
{
if (!$this->isLoaded()) {
throw new LogicException('No valid image was loaded.');
}
$width = $this->sanitizeWidth($width, $height);
$height = $this->sanitizeHeight($height, $width);
$dimensions = $this->prepareDimensions($width, $height, $scaleMethod);
$offset = new stdClass();
$offset->x = $offset->y = 0;
if ($scaleMethod == self::SCALE_FIT) {
$offset->x = round(($width - $dimensions->width) / 2);
$offset->y = round(($height - $dimensions->height) / 2);
$handle = imagecreatetruecolor($width, $height);
if (!$this->isTransparent()) {
$transparency = imagecolorAllocateAlpha($this->handle, 0, 0, 0, 127);
imagecolorTransparent($this->handle, $transparency);
}
} else {
$handle = imagecreatetruecolor($dimensions->width, $dimensions->height);
}
imagealphablending($handle, false);
imagesavealpha($handle, true);
if ($this->isTransparent()) {
$rgba = imageColorsForIndex($this->handle, imagecolortransparent($this->handle));
$color = imageColorAllocateAlpha($this->handle, $rgba['red'], $rgba['green'], $rgba['blue'], $rgba['alpha']);
imagecolortransparent($handle, $color);
imagefill($handle, 0, 0, $color);
imagecopyresized($handle, $this->handle, $offset->x, $offset->y, 0, 0, $dimensions->width, $dimensions->height, $this->getWidth(), $this->getHeight());
} else {
imagecopyresampled($handle, $this->handle, $offset->x, $offset->y, 0, 0, $dimensions->width, $dimensions->height, $this->getWidth(), $this->getHeight());
}
if ($createNew) {
$new = new JImage($handle);
return $new;
} else {
$this->destroy();
$this->handle = $handle;
return $this;
}
}
开发者ID:ranrolls,项目名称:ras-full-portal,代码行数:41,代码来源:image.php
示例10: grayscale
function grayscale(&$im)
{
$total = imagecolorstotal($im);
for ($i = 0; $i < $total; $i++) {
$arr = imageColorsForIndex($im, $i);
$r = colorgray($arr);
imageColorSet($im, $i, $r["red"], $r["green"], $r["blue"]);
}
return $im;
}
开发者ID:KevinStoneCode,项目名称:twmap,代码行数:10,代码来源:rangelib.php
示例11: createThumbnail
public function createThumbnail($width, $height, $crop, $quality, $filter, $to_path, $handle_high_resolution = false)
{
$creation_success = false;
$to_path_high_res = '';
if ($handle_high_resolution) {
$width = $width * 2;
$height = $height * 2;
$to_path_high_res = str_replace(".", "@2x.", $to_path);
}
if ($crop) {
$ratio = max($width / $this->image_width, $height / $this->image_height);
$thumbnail_width = $width;
$thumbnail_height = $height;
$w = $width / $ratio;
$h = $height / $ratio;
$x = ($this->image_width - $width / $ratio) / 2;
$y = ($this->image_height - $height / $ratio) / 2;
} else {
$ratio = min($width / $this->image_width, $height / $this->image_height);
$thumbnail_width = $this->image_width * $ratio;
$thumbnail_height = $this->image_height * $ratio;
$w = $this->image_width;
$h = $this->image_height;
$x = 0;
$y = 0;
}
$thumbnail = imagecreatetruecolor($thumbnail_width, $thumbnail_height);
if ($thumbnail == false) {
return $creation_success;
} else {
if ($this->isTransparent()) {
// only works with .gif!
// Get the transparent color values for the current image
$rgba = imageColorsForIndex($this->image, imagecolortransparent($this->image));
$color = imageColorAllocate($this->image, $rgba['red'], $rgba['green'], $rgba['blue']);
// Set the transparent color values for the new image
imagecolortransparent($thumbnail, $color);
imagefill($thumbnail, 0, 0, $color);
imagecopyresized($thumbnail, $this->image, 0, 0, $x, $y, $thumbnail_width, $thumbnail_height, $w, $h);
} else {
imagecolortransparent($thumbnail, imagecolorallocatealpha($thumbnail, 0, 0, 0, 127));
imagealphablending($thumbnail, false);
imagesavealpha($thumbnail, true);
imagecopyresampled($thumbnail, $this->image, 0, 0, $x, $y, $thumbnail_width, $thumbnail_height, $w, $h);
}
if (!is_null($filter)) {
if (is_array($filter)) {
extract($filter);
if (!isset($arg2)) {
imagefilter($thumbnail, $type, $arg1);
} else {
if (!isset($arg3)) {
imagefilter($thumbnail, $type, $arg1, $arg2);
} else {
if (!isset($arg4)) {
imagefilter($thumbnail, $type, $arg1, $arg2, $arg3);
} else {
imagefilter($thumbnail, $type, $arg1, $arg2, $arg3, $arg4);
}
}
}
} else {
imagefilter($thumbnail, $filter);
}
}
switch ($this->image_mimetype) {
case 'image/gif':
if ($handle_high_resolution) {
$this->thumbnail_high_res = $thumbnail;
$creation_high_res_success = imagegif($this->thumbnail_high_res, $to_path_high_res);
$this->thumbnail = imagecreatetruecolor($thumbnail_width / 2, $thumbnail_height / 2);
if ($this->thumbnail == false) {
return $creation_success;
}
// keep transparency
$rgba = imageColorsForIndex($this->thumbnail_high_res, imagecolortransparent($this->thumbnail_high_res));
$color = imageColorAllocate($this->thumbnail_high_res, $rgba['red'], $rgba['green'], $rgba['blue']);
imagecolortransparent($this->thumbnail, $color);
imagefill($this->thumbnail, 0, 0, $color);
if (!imagecopyresampled($this->thumbnail, $this->thumbnail_high_res, 0, 0, 0, 0, $thumbnail_width / 2, $thumbnail_height / 2, $thumbnail_width, $thumbnail_height)) {
$creation_low_res_success = false;
} else {
$creation_low_res_success = imagegif($this->thumbnail, $to_path);
}
if ($creation_high_res_success && $creation_low_res_success) {
$creation_success = true;
}
} else {
$this->thumbnail = $thumbnail;
$creation_success = imagegif($this->thumbnail, $to_path);
}
break;
case 'image/jpeg':
if ($handle_high_resolution) {
$this->thumbnail_high_res = $thumbnail;
$creation_high_res_success = imagejpeg($this->thumbnail_high_res, $to_path_high_res, $quality);
$this->thumbnail = imagecreatetruecolor($thumbnail_width / 2, $thumbnail_height / 2);
if ($this->thumbnail == false) {
return $creation_success;
}
//.........这里部分代码省略.........
开发者ID:ashanrupasinghe,项目名称:slbcv1,代码行数:101,代码来源:image.php
示例12: _555
function _555()
{
$b1 = imageTTFBbox($this->_112, 0, $this->_111, $this->_113);
$b2 = $b1[4];
$b3 = abs($b1[5]);
$im = imageCreateTrueColor($b1[4], abs($b1[5]) + 2);
imageFill($im, 0, 0, imageColorAllocate($im, 255, 255, 255));
imagettftext($im, $this->_112, 0, 0, $b3, imageColorAllocate($im, 0, 0, 0), $this->_111, $this->_113);
$this->_114 = $x = imageSX($im);
$this->_115 = $y = imageSY($im);
$c = 0;
$q = 1;
$this->_057[0] = 0;
for ($i = 0; $i < $x; $i++) {
for ($j = 0; $j < $y; $j++) {
$p = imageColorsForIndex($im, imageColorAt($im, $i, $j));
if ($p['red'] < 128 && $p['green'] < 128 && $p['blue'] < 128) {
$this->_057[$q] = $i;
$this->_057[$q + 1] = $j;
$q += 2;
$c += 2;
}
}
}
$this->_057[0] = $c;
$this->_435($this->_116);
}
开发者ID:oussamaruon,项目名称:Homosapiensonly.com,代码行数:27,代码来源:Text3D.class.php
示例13: set_part_color
/**
* @param $resource
* @param $color
* @return bool
*/
public function set_part_color(&$resource, $color)
{
$replace_color = $this->HEX2RGB($color);
if (LITE_RECOLOR_FUNCTION) {
imageFilter($resource, IMG_FILTER_COLORIZE, $replace_color[0] - 255, $replace_color[1] - 255, $replace_color[2] - 255);
} else {
$width = imageSX($resource);
$height = imageSY($resource);
for ($y = 0; $y < $height; $y++) {
for ($x = 0; $x < $width; $x++) {
$rgb = imageColorsForIndex($resource, imageColorAt($resource, $x, $y));
$nr = max(round($rgb['red'] * $replace_color[0] / 255), 0);
$ng = max(round($rgb['green'] * $replace_color[1] / 255), 0);
$nb = max(round($rgb['blue'] * $replace_color[2] / 255), 0);
imageSetPixel($resource, $x, $y, imageColorAllocateAlpha($resource, $nr, $ng, $nb, $rgb['alpha']));
}
}
}
return true;
}
开发者ID:Zortex04,项目名称:habbo-web-cms,代码行数:25,代码来源:AvatarImager.php
示例14: getPixelColor
/**
* Get pixel colors
* @param resource $img
* @param int $x
* @param intr $y
* @return array
*/
private static function getPixelColor($img, $x, $y)
{
return imageColorsForIndex($img, imageColorAt($img, $x, $y));
}
开发者ID:ristone,项目名称:posprint,代码行数:11,代码来源:GdtoBMP.php
示例15: imageCreateFromGIF
$im = imageCreateFromGIF($image_path);
$image_create_fun = 'imageGIF';
break;
case 'PNG':
$im = imageCreateFromPNG($image_path);
$image_create_fun = 'imagePNG';
}
if ($_POST['image_type'] !== 'original') {
$image_create_fun = 'image' . $_POST['image_type'];
}
if ($_POST['black_white'] == 'yes') {
if (imageIsTrueColor($im)) {
imagetruecolortopalette($im, false, 256);
}
for ($i = 0, $colors = imageColorsTotal($im); $i < $colors; $i++) {
$color = imageColorsForIndex($im, $i);
$gray = round($color['red'] * 0.229 + $color['green'] * 0.587 + $color['red'] * 0.114);
imageColorSet($im, $i, $gray, $gray, $gray);
}
}
$file_name = '';
$extention = $_POST['image_type'];
if ($_POST['image_type'] == 'jpeg') {
$extention = 'jpg';
}
if ($_POST['image_type'] == 'original') {
$file_name = $_FILES['image']['name'];
} else {
if (count(explode('.', $_FILES['image']['name'])) > 1) {
$file_name = explode('.', $_FILES['image']['name']);
array_pop($file_name);
开发者ID:azone,项目名称:General-Projects,代码行数:31,代码来源:imageConverter.php
示例16: resize
/**
* Method to resize the current image.
*
* @param mixed $width The width of the resized image in pixels or a percentage.
* @param mixed $height The height of the resized image in pixels or a percentage.
* @param boolean $createNew If true the current image will be cloned, resized and returned; else
* the current image will be resized and returned.
* @param integer $scaleMethod Which method to use for scaling
*
* @return Image
*
* @since 1.0
* @throws \LogicException
*/
public function resize($width, $height, $createNew = true, $scaleMethod = self::SCALE_INSIDE)
{
// Make sure the resource handle is valid.
if (!$this->isLoaded()) {
throw new \LogicException('No valid image was loaded.');
}
// Sanitize width.
$width = $this->sanitizeWidth($width, $height);
// Sanitize height.
$height = $this->sanitizeHeight($height, $width);
// Prepare the dimensions for the resize operation.
$dimensions = $this->prepareDimensions($width, $height, $scaleMethod);
// Instantiate offset.
$offset = new \stdClass();
$offset->x = $offset->y = 0;
// Center image if needed and create the new truecolor image handle.
if ($scaleMethod == self::SCALE_FIT) {
// Get the offsets
$offset->x = round(($width - $dimensions->width) / 2);
$offset->y = round(($height - $dimensions->height) / 2);
$handle = imagecreatetruecolor($width, $height);
// Make image transparent, otherwise canvas outside initial image would default to black
if (!$this->isTransparent()) {
$transparency = imagecolorAllocateAlpha($this->handle, 0, 0, 0, 127);
imagecolorTransparent($this->handle, $transparency);
}
} else {
$handle = imagecreatetruecolor($dimensions->width, $dimensions->height);
}
// Allow transparency for the new image handle.
imagealphablending($handle, false);
imagesavealpha($handle, true);
if ($this->isTransparent()) {
// Get the transparent color values for the current image.
$rgba = imageColorsForIndex($this->handle, imagecolortransparent($this->handle));
$color = imageColorAllocateAlpha($this->handle, $rgba['red'], $rgba['green'], $rgba['blue'], $rgba['alpha']);
// Set the transparent color values for the new image.
imagecolortransparent($handle, $color);
imagefill($handle, 0, 0, $color);
}
// Use resampling for better quality
imagecopyresampled($handle, $this->handle, $offset->x, $offset->y, 0, 0, $dimensions->width, $dimensions->height, $this->getWidth(), $this->getHeight());
// If we are resizing to a new image, create a new JImage object.
if ($createNew) {
// @codeCoverageIgnoreStart
$new = new Image($handle);
return $new;
// @codeCoverageIgnoreEnd
} else {
// Free the memory from the current handle
$this->destroy();
$this->handle = $handle;
return $this;
}
}
开发者ID:ZerGabriel,项目名称:joomla-framework,代码行数:69,代码来源:Image.php
示例17: getColorRGB
/**
* @result mixed RGBA array for a color with index $colorIndex
*/
function getColorRGB($colorIndex)
{
return imageColorsForIndex($this->handle, $colorIndex);
}
开发者ID:trabisdementia,项目名称:xuups,代码行数:7,代码来源:Image.class.php
示例18: image_colorize4
function image_colorize4(&$img, $rgb)
{
imageTrueColorToPalette($img, true, 256);
$numColors = imageColorsTotal($img);
for ($x = 0; $x < $numColors; $x++) {
list($r, $g, $b) = array_values(imageColorsForIndex($img, $x));
$grayscale = ($r + $g + $b) / 3 / 0xff;
imageColorSet($img, $x, $grayscale * $rgb[0], $grayscale * $rgb[1], $grayscale * $rgb[2]);
}
}
开发者ID:habb0,项目名称:HabboPHP,代码行数:10,代码来源:badge.php
示例19: _adjustTransparency
function _adjustTransparency(&$Source, &$Destination)
{
if ($this->_isTransparent($Source)) {
$rgba = imageColorsForIndex($Source, imageColorTransparent($Source));
$color = imageColorAllocate($Destination, $rgba['red'], $rgba['green'], $rgba['blue']);
imageColorTransparent($Destination, $color);
imageFill($Destination, 0, 0, $color);
} else {
if ($this->_format == 'png') {
imageAlphaBlending($Destination, false);
imageSaveAlpha($Destination, true);
} elseif ($this->_format != 'gif') {
$white = imageColorAllocate($Destination, 255, 255, 255);
imageFill($Destination, 0, 0, $white);
}
}
}
开发者ID:razzman,项目名称:media,代码行数:17,代码来源:GdMediaAdapter.php
示例20: imageCopyMergeAlpha
/**
* Copy an image on another one and converse transparency
*
* @param resource $destImg
* @param resource $srcImg
* @param integer $destX
* @param integer $destY
* @param integer $srcX
* @param integer $srcY
* @param integer $srcW
* @param integer $srcH
* @param integer $pct
*/
public static function imageCopyMergeAlpha(&$destImg, &$srcImg, $destX, $destY, $srcX, $srcY, $srcW, $srcH, $pct = 0)
{
$destX = (int) $destX;
$destY = (int) $destY;
$srcX = (int) $srcX;
$srcY = (int) $srcY;
$srcW = (int) $srcW;
$srcH = (int) $srcH;
$pct = (int) $pct;
$destW = imageSX($destImg);
$destH = imageSY($destImg);
for ($y = 0; $y < $srcH + $srcY; $y++) {
for ($x = 0; $x < $srcW + $srcX; $x++) {
if ($x + $destX >= 0 && $x + $destX < $destW && $x + $srcX >= 0 && $x + $srcX < $srcW && $y + $destY >= 0 && $y + $destY < $destH && $y + $srcY >= 0 && $y + $srcY < $srcH) {
$destPixel = imageColorsForIndex($destImg, imageColorat($destImg, $x + $destX, $y + $destY));
$srcImgColorat = imageColorat($srcImg, $x + $srcX, $y + $srcY);
if ($srcImgColorat > 0) {
$srcPixel = imageColorsForIndex($srcImg, $srcImgColorat);
$srcAlpha = 1 - $srcPixel['alpha'] / 127;
$destAlpha = 1 - $destPixel['alpha'] / 127;
$opacity = $srcAlpha * $pct / 100;
if ($destAlpha >= $opacity) {
$alpha = $destAlpha;
}
if ($destAlpha < $opacity) {
$alpha = $opacity;
}
if ($alpha > 1) {
$alpha = 1;
}
if ($opacity > 0) {
$destRed = round($destPixel['red'] * $destAlpha * (1 - $opacity));
$destGreen = round($destPixel['green'] * $destAlpha * (1 - $opacity));
$destBlue = round($destPixel['blue'] * $destAlpha * (1 - $opacity));
$srcRed = round($srcPixel['red'] * $opacity);
$srcGreen = round($srcPixel['green'] * $opacity);
$srcBlue = round($srcPixel['blue'] * $opacity);
$red = round(($destRed + $srcRed) / ($destAlpha * (1 - $opacity) + $opacity));
$green = round(($destGreen + $srcGreen) / ($destAlpha * (1 - $opacity) + $opacity));
$blue = round(($destBlue + $srcBlue) / ($destAlpha * (1 - $opacity) + $opacity));
if ($red > 255) {
$red = 255;
}
if ($green > 255) {
$green = 255;
}
if ($blue > 255) {
$blue = 255;
}
$alpha = round((1 - $alpha) * 127);
$color = imageColorAllocateAlpha($destImg, $red, $green, $blue, $alpha);
imageSetPixel($destImg, $x + $destX, $y + $destY, $color);
}
}
}
}
}
}
开发者ID:TahsinGokalp,项目名称:L3-Eticaret,代码行数:71,代码来源:ImageWorkshopLib.php
注:本文中的imageColorsForIndex函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论