Next Generation CMS :: Форум поддержки

Заинтересовала наша система? Тогда этот форум для Вас!

Вы не зашли.

#252 Re: "У меня не работает..." » xfilds Не поддерживает формат webp » 2020-01-28 13:28:32

irbees2008 пишет:

это при открытии ссылки на превьшку

NGCMS Runtime exception: ArgumentCountError
Too few arguments to function plugin_ads_pro(), 0 passed in /home/www/o-kredite.info/engine/includes/inc/extras.inc.php on line 589 and exactly 1 expected

Stack trace
#    Line #    Class/Function    File name
0    589    plugin_ads_pro    /home/www/o-kredite.info/engine/includes/inc/extras.inc.php
1    135    executeActionHandler    /home/www/o-kredite.info/index.php

Это плагин ads pro не хотел работать при php выше 7 ,поправлено на гите

#253 Re: "У меня не работает..." » xfilds Не поддерживает формат webp » 2020-01-28 11:33:16

irbees2008 пишет:

×Ошибка: Невозможно выполнить операцию: данный формат файлов не поддерживается (не найдена функция imagecreatefromwebp)

тоже самое hmm , все пошел машину откапывать cool

#256 Re: "У меня не работает..." » xfilds Не поддерживает формат webp » 2020-01-28 09:14:47

Ну основные на 095, на 096 пока не переводил, тем более что админку твою не признают, да и остальные примочки

#259 Re: "У меня не работает..." » xfilds Не поддерживает формат webp » 2020-01-28 07:12:09

×Ошибка: Невозможно выполнить операцию: данный формат файлов не поддерживается (не найдена функция imagecreatefromwebp)

#263 Re: "У меня не работает..." » xfilds Не поддерживает формат webp » 2020-01-28 06:38:54

Может в этой конструкции не правильно,

$res = @imagewebp($newimg, $dir . '/thumb/' . $file,($quality >= 10 && $quality <= 100) ? $quality : 80);

я  просто понял что вот это  $quality  нужно,а как поставить, правильно не понял,поэтому просто скопировал с

 case 2:
                $res = @imagejpeg($newimg, $dir . '/thumb/' . $file, ($quality >= 10 && $quality <= 100) ? $quality : 80);
                break;

https://www.php.net/manual/ru/function.imagewebp.php

#264 Флейм » У кого как ? » 2020-01-27 19:17:52

irbees2008
Ответов: 4

У кого как https://developers.google.com/speed/pagespeed/insights/
attachment.php?item=1321&download=1
Правда на дескопе , на мобилке намного хуже

#265 Re: "У меня не работает..." » xfilds Не поддерживает формат webp » 2020-01-27 18:20:48

Во всех строках поправил, дальше надо превьюшку добить, при попытке создать превью

(не найдена функция imagecreatefromwebp)

// ======================================================================= //
// Image managment class                                                   //
// ======================================================================= //
class image_managment {

	function image_managment() {

		return;
	}

	// Get image size. Return an array with params:
	// index 0 - image type (same as in getimagesize())
	// index 1 - image width
	// index 2 - image height
	function get_size($fname) {

		if (is_array($info = @getimagesize($fname))) {
			return array($info[2], $info[0], $info[1]);
		}

		return null;
	}

	// Params:
	//	rpc			- flag if we're called via RPC call
	function create_thumb($dir, $file, $sizeX, $sizeY, $quality = 0, $param = []) {

		global $lang;
		$fname = $dir . '/' . $file;

		//print "CALL create_thumb($dir, $file, $sizeX, $sizeY)<br>\n";

		// Check if we have a directory for thumb
		if (!is_dir($dir . '/thumb')) {
			if (!@mkdir($dir . '/thumb', 0777)) {
				if ($param['rpc']) {
					return array('status' => 0, 'errorCode' => 351, 'errorText' => iconv('Windows-1251', 'UTF-8', $lang['upload.error.sysperm.thumbdir']));
				}
				msg(array("type" => "error", "text" => $lang['upload.error.sysperm.thumbdir']));

				return false;
			}
		}

		// Check if file exists and we can get it's image size
		if (!file_exists($fname) || !is_array($sz = @getimagesize($fname))) {
			if ($param['rpc']) {
				return array('status' => 0, 'errorCode' => 352, 'errorText' => iconv('Windows-1251', 'UTF-8', $lang['upload.error.open'] . $fname));
			}
			msg(array("type" => "error", "text" => $lang['upload.error.open']));

			return false;
		}
		$origX = $sz[0];
		$origY = $sz[1];
		$origType = $sz[2];

		if (!(($sizeX > 0) && ($sizeY > 0) && ($origX > 0) && ($origY > 0))) {
			if ($param['rpc']) {
				return array('status' => 0, 'errorCode' => 353, 'errorText' => iconv('Windows-1251', 'UTF-8', 'Unable to determine image size'));
			}

			return false;
		}

		// Calculate resize factor
		$factor = max($origX / $sizeX, $origY / $sizeY);

		// Don't enlarge picture without need
		if ($factor < 1) $factor = 1;

		// Check if we can open this type of image and open it
		$cmd = 'imagecreatefrom';
		switch ($origType) {
			case 1:
				$cmd .= 'gif';
				break;
			case 2:
				$cmd .= 'jpeg';
				break;
			case 3:
				$cmd .= 'png';
				break;
			case 6:
				$cmd .= 'bmp';
				break;
			case 18:
			    $cmd .= 'webp';
				break;
		}

		if (!$cmd || !function_exists($cmd)) {
			if ($param['rpc']) {
				return array('status' => 0, 'errorCode' => 354, 'errorText' => iconv('Windows-1251', 'UTF-8', str_replace('{func}', $cmd, $lang['upload.error.libformat'])));
			}
			msg(array("type" => "error", "text" => str_replace('{func}', $cmd, $lang['upload.error.libformat'])));

			return;
		}

		switch ($origType) {
			case 1:
				$img = @imagecreatefromgif($fname);
				break;
			case 2:
				$img = @imagecreatefromjpeg($fname);
				break;
			case 3:
				$img = @imagecreatefrompng($fname);
				break;
			case 6:
				$img = @imagecreatefrombmp($fname);
				break;
			case 18:
				$img = @imagecreatefromwebp($fname);
				break;
		}

		if (!$img) {
			if ($param['rpc']) {
				return array('status' => 0, 'errorCode' => 355, 'errorText' => iconv('Windows-1251', 'UTF-8', $lang['upload.error.open']));
			}
			msg(array("type" => "error", "text" => $lang['upload.error.open']));

			return false;
		}

		// Calculate thumb size and create an empty object for it
		$newX = round($origX / $factor);
		$newY = round($origY / $factor);

		$newimg = imagecreatetruecolor($newX, $newY);

		// Prepare for transparency // NON-ALPHA transparency
		$oTColor = imagecolortransparent($img);
		if ($oTColor >= 0 && $oTColor < imagecolorstotal($img)) {
			$TColor = imagecolorsforindex($img, $oTColor);
			$nTColor = imagecolorallocate($newimg, $TColor['red'], $TColor['green'], $TColor['blue']);
			imagefill($newimg, 0, 0, $nTColor);
			imagecolortransparent($newimg, $nTColor);
		} else {
			// Check for ALPHA transparency in PNG
			if ($origType == 3) {
				imagealphablending($newimg, false);
				$nTColor = imagecolorallocatealpha($newimg, 0, 0, 0, 127);
				imagefill($newimg, 0, 0, $nTColor);
				imagesavealpha($newimg, true);
			}
		}

		// Resize image
		imagecopyresampled($newimg, $img, 0, 0, 0, 0, $newX, $newY, $origX, $origY);

		// Try to write resized image
		switch ($origType) {
			case 1:
				$res = @imagegif($newimg, $dir . '/thumb/' . $file);
				break;
			case 2:
				$res = @imagejpeg($newimg, $dir . '/thumb/' . $file, ($quality >= 10 && $quality <= 100) ? $quality : 80);
				break;
			case 3:
				$res = @imagepng($newimg, $dir . '/thumb/' . $file);
				break;
			case 6:
				$res = @imagebmp($newimg, $dir . '/thumb/' . $file);
				break;
			case 18:
				$res = @imagewebp($newimg, $dir . '/thumb/' . $file,($quality >= 10 && $quality <= 100) ? $quality : 80);
				break;
		}

		// Set correct permissions to file
		@chmod($dir . '/thumb/' . $file, 0644);

		if (!$res) {
			if ($param['rpc']) {
				return array('status' => 0, 'errorCode' => 356, 'errorText' => iconv('Windows-1251', 'UTF-8', $lang['upload.error.thumbcreate']));
			}
			msg(array("type" => "error", "text" => $lang['upload.error.thumbcreate']));

			return false;
		}
		if ($param['rpc']) {
			return array('status' => 1, 'errorCode' => 0, 'errorText' => iconv('Windows-1251', 'UTF-8', $lang['upload.complete']), 'data' => array('x' => $newX, 'y' => $newY));
		}

		return array($newX, $newY);
	}


	// Transformate original image
	// * image			- filename of original image
	// * stamp			- FLAG if we need to add a stamp
	// * resize			- Array for image resize
	// ** x					- size X
	// ** y					- size Y
	// ** stampfile		- filename of stamp file
	// ** stamp_transparency - %% of transparency of added stamp [ default: 40 ]
	// ** stamp_noerror	- don't generate an error if it was not possible to add stamp
	// * shadow			- FLAG if we need to add a shadow
	// * outquality		- with what quality we should write resulting file (for JPEG) [ default: 80 ]
	// * outfile		- filename to write a result [ default: original file ]
	// * rpc			- flag shows if call is made via RPC call
	function image_transform($param) {

		//function add_stamp($image, $stamp, $transparency = 40, $quality = 80){
		global $config, $lang;

		// LOAD ORIGINAL IMAGE
		// Check if file exists and we can get it's image size
		if (!file_exists($param['image']) || !is_array($sz = @getimagesize($param['image']))) {
			if ($param['rpc']) {
				return array('status' => 0, 'errorCode' => 401, 'errorText' => iconv('Windows-1251', 'UTF-8', $lang['upload.error.open'] . ' ' . $param['image']));
			}
			msg(array("type" => "error", "text" => $lang['upload.error.open']));

			return 0;
		}

		$origX = $sz[0];
		$origY = $sz[1];
		$origType = $sz[2];

		// Check if we can open this type of image and open it
		$cmd = 'imagecreatefrom';
		switch ($origType) {
			case 1:
				$cmd .= 'gif';
				break;
			case 2:
				$cmd .= 'jpeg';
				break;
			case 3:
				$cmd .= 'png';
				break;
			case 6:
				$cmd .= 'bmp';
				break;
			case 18:
				$cmd .= 'webp';
				break;
		}

		if (!$cmd || !function_exists($cmd)) {
			if ($param['rpc']) {
				return array('status' => 0, 'errorCode' => 402, 'errorText' => iconv('Windows-1251', 'UTF-8', str_replace('{func}', $cmd, $lang['upload.error.libformat'])));
			}
			msg(array("type" => "error", "text" => str_replace('{func}', $cmd, $lang['upload.error.libformat'])));

			return;
		}

		switch ($origType) {
			case 1:
				$img = @imagecreatefromgif($param['image']);
				break;
			case 2:
				$img = @imagecreatefromjpeg($param['image']);
				break;
			case 3:
				$img = @imagecreatefrompng($param['image']);
				break;
			case 6:
				$img = @imagecreatefrombmp($param['image']);
				break;
			case 18:
				$img = @imagecreatefromwebp($param['image']);
				break;
		}

		if (!$img) {
			if ($param['rpc']) {
				return array('status' => 0, 'errorCode' => 403, 'errorText' => iconv('Windows-1251', 'UTF-8', $lang['upload.error.open']));
			}
			msg(array("type" => "error", "text" => $lang['upload.error.open']));

			return;
		}

		// Check if resize of original file is requested
		if (isset($param['resize']) && is_array($param['resize']) && ($param['resize']['x'] > 0) && ($param['resize']['y'] > 0)) {
			// Calculate ratio and new X/Y sizes
			$ratio = min($param['resize']['x'] / $origX, $param['resize']['y'] / $origY);
			$newX = round($origX * $ratio);
			$newY = round($origY * $ratio);

			// Create image area
			$newImg = imagecreatetruecolor($newX, $newY);

			// Preserver transparency
			if (($origType == 1) || ($origType == 3)) {
				imagecolortransparent($newImg, imagecolorallocatealpha($newImg, 0, 0, 0, 127));
				imagealphablending($newImg, false);
				imagesavealpha($newImg, true);
			}

			// Resize image
			imagecopyresampled($newImg, $img, 0, 0, 0, 0, $newX, $newY, $origX, $origY);

			// Save new information into current image
			$img = $newImg;
			$origX = $newX;
			$origY = $newY;
		}

		if ($param['stamp']) {
			// LOAD STAMP IMAGE
			if (!file_exists($param['stampfile']) || !is_array($sz = @getimagesize($param['stampfile']))) {
				if (!$param['stamp_noerror']) {
					if ($param['rpc']) {
						return array('status' => 0, 'errorCode' => 404, 'errorText' => iconv('Windows-1251', 'UTF-8', $lang['upload.error.openstamp']));
					}
					msg(array("type" => "error", "text" => $lang['upload.error.openstamp']));
				}

				return 0;
			}

			$stampX = $sz[0];
			$stampY = $sz[1];
			$stampType = $sz[2];

			// Check if we can open this type of image and open it
			$cmd = 'imagecreatefrom';
			switch ($origType) {
				case 1:
					$cmd .= 'gif';
					break;
				case 2:
					$cmd .= 'jpeg';
					break;
				case 3:
					$cmd .= 'png';
					break;
				case 6:
					$cmd .= 'bmp';
					break;
				case 18:
					$cmd .= 'webp';
					break;
			}

			if (!$cmd || !function_exists($cmd)) {
				if ($param['rpc']) {
					return array('status' => 0, 'errorCode' => 402, 'errorText' => iconv('Windows-1251', 'UTF-8', str_replace('{func}', $cmd, $lang['upload.error.libformat'])));
				}
				msg(array("type" => "error", "text" => str_replace('{func}', $cmd, $lang['upload.error.libformat'])));

				return;
			}

			switch ($stampType) {
				case 1:
					$stamp = @imagecreatefromgif($param['stampfile']);
					break;
				case 2:
					$stamp = @imagecreatefromjpeg($param['stampfile']);
					break;
				case 3:
					$stamp = @imagecreatefrompng($param['stampfile']);
					break;
				case 6:
					$stamp = @imagecreatefrombmp($param['stampfile']);
					break;
				case 18:
					$stamp = @imagecreatefromwebp($param['stampfile']);
					break;
			}

			if (!$stamp) {
				if (!$param['stamp_noerror']) {
					if ($param['rpc']) {
						return array('status' => 0, 'errorCode' => 405, 'errorText' => iconv('Windows-1251', 'UTF-8', $lang['upload.error.openstamp']));
					}
					msg(array("type" => "error", "text" => $lang['upload.error.openstamp']));
				}

				return;
			}

			// BOTH FILES ARE LOADED
			$destX = $origX - $stampX - 10;
			$destY = $origY - $stampY - 10;
			if (($destX < 0) || ($destY < 0)) {
				if (!$param['stamp_noerror']) {
					if ($param['rpc']) {
						return array('status' => 0, 'errorCode' => 406, 'errorText' => iconv('Windows-1251', 'UTF-8', $lang['upload.error.stampsize']));
					}
					msg(array("type" => "error", "text" => $lang['upload.error.stampsize']));
				}

				return;
			}

			if (($param['stamp_transparency'] < 1) || ($param['stamp_transparency'] > 100)) {
				$param['stamp_transparency'] = 40;
			}

			if ($stampType == 3)
				$this->imagecopymerge_alpha($img, $stamp, $destX, $destY, 0, 0, $stampX, $stampY, $param['stamp_transparency']);
			else
				imageCopyMerge($img, $stamp, $destX, $destY, 0, 0, $stampX, $stampY, $param['stamp_transparency']);
		}

		$newX = $origX;
		$newY = $origY;
		if ($param['shadow']) {
			$newX = $origX + 5;
			$newY = $origY + 5;
			$newimg = imagecreatetruecolor($newX, $newY);

			$background = array("r" => 255, "g" => 255, "b" => 255);
			$step_offset = array("r" => ($background["r"] / 10), "g" => ($background["g"] / 10), "b" => ($background["b"] / 10));
			$current_color = $background;

			for ($i = 0; $i <= 5; $i++) {
				$colors[$i] = @imagecolorallocate($newimg, round($current_color["r"]), round($current_color["g"]), round($current_color["b"]));
				$current_color["r"] -= $step_offset["r"];
				$current_color["g"] -= $step_offset["g"];
				$current_color["b"] -= $step_offset["b"];
			}

			imagefilledrectangle($newimg, 0, 0, $newX, $newY, $colors[0]);

			for ($i = 0; $i <= 5; $i++) {
				@imagefilledrectangle($newimg, 5, 5, $newX - $i, $newY - $i, $colors[$i]);
			}
			imagecopymerge($newimg, $img, 0, 0, 0, 0, $origX, $origY, 100);
			$img = $newimg;
		}

		// WRITE A RESULT FILE
		if (($param['outquality'] < 10) || ($param['outquality'] > 100)) {
			$param['outquality'] = 80;
		}

		if (!$param['outfile']) $param['outfile'] = $param['image'];

		switch ($origType) {
			case 1:
				$res = @imagegif($img, $param['outfile']);
				break;
			case 2:
				$res = @imagejpeg($img, $param['outfile'], $param['outquality']);
				break;
			case 3:
				$res = @imagepng($img, $param['outfile']);
				break;
			case 6:
				$res = @imagebmp($img, $param['outfile']);
				break;
			case 18:
				$res = @imagewebp($img, $param['outfile'], $param['outquality']);
				break;
		}
		if (!$res) {
			if ($param['rpc']) {
				return array('status' => 0, 'errorCode' => 407, 'errorText' => iconv('Windows-1251', 'UTF-8', $lang['upload.error.addstamp']));
			}
			msg(array("type" => "error", "text" => $lang['upload.error.addstamp']));

			return;
		}

		if ($param['rpc']) {
			return array('status' => 1, 'errorCode' => 0, 'errorText' => iconv('Windows-1251', 'UTF-8', $lang['upload.complete']), 'data' => array('x' => $newX, 'y' => $newY));
		}

		return array($newX, $newY);
	}

	function imagecopymerge_alpha($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h, $pct) {

		if (!isset($pct)) {
			return false;
		}
		$pct /= 100;
		// Get image width and height
		$w = imagesx($src_im);
		$h = imagesy($src_im);
		// Turn alpha blending off
		imagealphablending($src_im, false);
		// Find the most opaque pixel in the image (the one with the smallest alpha value)
		$minalpha = 127;
		for ($x = 0; $x < $w; $x++)
			for ($y = 0; $y < $h; $y++) {
				$alpha = (imagecolorat($src_im, $x, $y) >> 24) & 0xFF;
				if ($alpha < $minalpha) {
					$minalpha = $alpha;
				}
			}
		//loop through image pixels and modify alpha for each
		for ($x = 0; $x < $w; $x++) {
			for ($y = 0; $y < $h; $y++) {
				//get current alpha value (represents the TANSPARENCY!)
				$colorxy = imagecolorat($src_im, $x, $y);
				$alpha = ($colorxy >> 24) & 0xFF;
				//calculate new alpha
				if ($minalpha !== 127) {
					$alpha = 127 + 127 * $pct * ($alpha - 127) / (127 - $minalpha);
				} else {
					$alpha += 127 * $pct;
				}
				//get the color index with new alpha
				$alphacolorxy = imagecolorallocatealpha($src_im, ($colorxy >> 16) & 0xFF, ($colorxy >> 8) & 0xFF, $colorxy & 0xFF, $alpha);
				//set pixel with the new color + opacity
				if (!imagesetpixel($src_im, $x, $y, $alphacolorxy)) {
					return false;
				}
			}
		}
		// The image copy
		imagecopy($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h);
	}
}

Вот так получилось, что еще добавить?

#266 Re: "У меня не работает..." » xfilds Не поддерживает формат webp » 2020-01-27 17:40:10

Все понял исправлю,а то не понял откуда берется цифра

#267 Re: "У меня не работает..." » xfilds Не поддерживает формат webp » 2020-01-27 15:14:03

добавил в upload.class, цифра откуда берется?

	case 7:
				$img = @imagecreatefromwebp($fname);
				break;

#268 Re: "У меня не работает..." » xfilds Не поддерживает формат webp » 2020-01-27 14:56:03

это при открытии ссылки на превьшку

NGCMS Runtime exception: ArgumentCountError
Too few arguments to function plugin_ads_pro(), 0 passed in /home/www/o-kredite.info/engine/includes/inc/extras.inc.php on line 589 and exactly 1 expected

Stack trace
#    Line #    Class/Function    File name
0    589    plugin_ads_pro    /home/www/o-kredite.info/engine/includes/inc/extras.inc.php
1    135    executeActionHandler    /home/www/o-kredite.info/index.php

#269 Re: "У меня не работает..." » xfilds Не поддерживает формат webp » 2020-01-27 14:49:44

поставил php 7.3 заработало, даже превьюшки, но сам факт в том что изображение уже было загруженно, оно не отображалось в таблице , и после смены php при попытке загрузить выдало что такое изображение уже загружено, переименуйте или замените, сделал заменой

#273 Re: "У меня не работает..." » xfilds Не поддерживает формат webp » 2020-01-27 12:08:07

rusiq, Пиши сюда, с почтой что  то случилось, заблокировали

#274 Re: "У меня не работает..." » xfilds Не поддерживает формат webp » 2020-01-27 08:53:39

На локалке тоже самое, на форке тоже самое., на 096 тоже есть, в шаблоне нормально все работает ,доступ дать?

Подвал раздела

Работает на FluxBB