Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум о web-дизайне, графике - RusForumz _ Web-программирование: PHP _ Подгон размеров картинки

Автор: Arcoslov 27.4.2008, 9:58

Здравствуйте. Помогите пожалуйста решить такую задачу:

Нужно, чтобы некоторая картинка отображалась в браузере по ширине на 70% экрана, а по высоте - пропорционально ширине. С шириной всё понятно- ставим width=70%. Но т.к. у всех разные мониторы и разные разрешения, эта самая ширина картинки в пикселях по идее будет разная, и вот сообразно ей нужно задать высоту картинке пропорционально изначальному размеру - в этом и прошу вашей помощи.
Заранее благодарен.

Автор: liw 27.4.2008, 10:38

Стандартный пример с php.net

Код
<?php
// The file
$filename = 'test.jpg';
$percent = 0.5;

// Content type
header('Content-type: image/jpeg');

// Get new dimensions
list($width, $height) = getimagesize($filename);
$new_width = $width * $percent;
$new_height = $height * $percent;

// Resample
$image_p = imagecreatetruecolor($new_width, $new_height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

// Output
imagejpeg($image_p, null, 100);
?>

Автор: NixoN 27.4.2008, 11:38

ну а если вы хотите поставить простой html код, то это можно сделать так:

Код
<img src="img.jpg" width="80%" />
, и высота будет поставлена автоматически.

Автор: Arcoslov 27.4.2008, 14:11

Ого, ну вы даёте. спасибо за ответы!

только у меня что-то неполучается. файл в директории лежит, всё есть, врое всё нормально, а он выдаёт ошибку:


Код
ошибка номер: 2 [Предупреждение]
описание ошибки: getimagesize(test.jpg): failed to open stream: No such file or directory
В строке:
$new_width = $width * $percent;


там дальше есть ещё ошибки, но давайте сначала с этим разберёмся.
liw, я чисто скопировал ваш код и ничего не менял. положил в директорию test.jpg и всё. Может, это я что не правильно делаю?

NixoN круто, но так - жить не интересно )

Автор: liw 27.4.2008, 14:47

No such file or directory -> означает только то что файла test.jpg нет в папке скрипта )
и к тому же эта ошибка не может быть на строке $new_width = $width * $percent;
только в list($width, $height) = getimagesize($filename);
остальные ошибки берутся из первой.

Автор: Arcoslov 28.4.2008, 7:44

liw, Да, вы правы, именно в той строке, я ошибся. Но, тем не менее, файл то есть в директории..

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)