Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы » Как вывести формат и размер картинки?

Как вывести формат и размер картинки?


     28.09.2019    картинки    Общие вопросы, Общие вопросы по PHP, Модули, Хаки    1463

вопрос
Здравствуйте. Добавляю в дополнительное поле типа "Загружаемое изображение" картинку. Как можно вывести информацию о картинке (размеры и её формат)? Например вот так: 100x100, png, 23kb.

Ответил: hent4ib


создай файл imginfo.php в modules

<?php
/*
=====================================================
imginfo
-----------------------------------------------------
WebSite : LostSerial
=====================================================
*/
if( !defined( 'DATALIFEENGINE' ) ) {
        die( "Hacking attempt!" );
}
include ENGINE_DIR .'/modules/filesize.php'; // Размер файла
$content = "{$poster}"; // Ссылка на файл
$file_open = fopen($content, "r");$file_size = 0;
// Размер изображения (пример 600х600)
$imginf = getimagesize("{$poster}"); 
// Тип изображения
$flag = array(1=>'GIF', 2=>'JPG', 3=>'PNG', 4=>'SWF', 5=>'PSD', 6=>'BMP', 7=>'TIFF(байтовый порядок intel)', 8=>'TIFF(байтовый порядок motorola)', 9=>'JPC', 10=>'JP2', 11=>'JPX'); 	 
echo  "<br>Размер: ".$imginf[0] ."x". $imginf[1] .', '; 
while(($str = fread($file_open, 1024)) != null) {$file_size += strlen($str);}
echo "Вес: ".size_convert($file_size);
?>

создать файл filesize.php в modules
сам файл

<?php
/*
=====================================================
img info
-----------------------------------------------------
WebSite : LostSerial
=====================================================
*/
function size_convert($bytes) {

	$bytes = floatval($bytes);
	
	$arBytes = array(
		0 => array(
			"UNIT" => "Tb",
			"VALUE" => pow(1024, 4)
		),
		1 => array(
			"UNIT" => "Gb",
			"VALUE" => pow(1024, 3)
		),
		2 => array(
			"UNIT" => "Mb",
			"VALUE" => pow(1024, 2)
		),
		3 => array(
			"UNIT" => "Kb",
			"VALUE" => 1024
		),
		4 => array(
			"UNIT" => "b",
			"VALUE" => 1
		),
	);

	foreach($arBytes as $arItem) {
	
		if($bytes >= $arItem["VALUE"]) {
		
			$result = $bytes / $arItem["VALUE"];
			$result = str_replace(".", "," , strval(round($result, 2)))." ".$arItem["UNIT"];
			
			break;
			
		}
		
	}
	
	return $result;
	
}
?>

подключение - {include file="engine/modules/imginfo.php?poster=[xfvalue_доп_поле_с_картинкой]"}

2 комментария

Alex Alex
Юзер

Alex Alex - 28 сентября 2019 17:41 -

HENT4IB, большое спасибо! Именно это я искал!

super.bog19
Юзер

super.bog19 - 28 ноября 2019 17:42 -

Кто знает подскажите пожалуйста как моно использовать данный хак для дополнительное поле типа "Загружаемая галерея изображений"
Чтобы для каждого изображение показывало свой размер картинки

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх