/** * Resize helper function. * * @param Image $image * @param int $newWidth * @param int $newHeight * @param int $targetX * @param int $targetY * @param int $srcX * @param int $srcY * */ private function _resize(&$image, $newWidth, $newHeight, $targetX = 0, $targetY = 0, $srcX = 0, $srcY = 0) { // $this->_imageCheck(); if ($image->isAnimated()) { // Animated GIF $gift = new GifHelper(); $blocks = $gift->resize($image->getBlocks(), $newWidth, $newHeight); // Resize image instance $image = new Image($image->getCore(), $image->getImageFile(), $newWidth, $newHeight, $image->getType(), $blocks, true); } else { // Create blank image $newImage = Image::createBlank($newWidth, $newHeight); if (ImageType::PNG === $image->getType()) { // Preserve PNG transparency $newImage->fullAlphaMode(true); } imagecopyresampled($newImage->getCore(), $image->getCore(), $targetX, $targetY, $srcX, $srcY, $newWidth, $newHeight, $image->getWidth(), $image->getHeight()); // Free memory of old resource imagedestroy($image->getCore()); // Resize image instance $image = new Image($newImage->getCore(), $image->getImageFile(), $newWidth, $newHeight, $image->getType()); } }