PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Без описания
Поиск в теме | Версия для печати
morph1k
Отправлено: 04 Июля, 2013 - 14:22:16
Новичок
Покинул форум
Сообщений всего: 14
Дата рег-ции: Июнь 2013
Помог: 0 раз(а)
Здравствуйте!
Очень нужна помощь в решении следующей задачи,
1. Нужно из определенной папки достать изображения.
2. Дать им определенный размер (изображения называются по разному:
допустим изображение 265_6_!.png должно быть размером в 190х190 px, изображение
265_6_d.png должно быть 380х180px. ). Дело в том что все изображения не маштабируются в графическом редакторе а подаются в разных размерах, поэтому их нужно привести в нужный размер кодом.
3. И третье это розставить их в таком порядке см. картинку.
(Отредактировано автором: 04 Июля, 2013 - 14:23:48)
VenZell
Отправлено: 04 Июля, 2013 - 14:52:22
Частый гость
Покинул форум
Сообщений всего: 237
Дата рег-ции: Июнь 2013
Помог: 12 раз(а)
Частично упрощу тебе задачу:
PHP:
скопировать код в буфер обмена
/* Поиск изображений в папке $path и ее подпапках */
function traverse_hierarchy( $path )
{
while ( ( $file = readdir ( $dir ) ) !== false ) {
if ( $file [ 0 ] == '.' ) continue ;
$fpath = $path . '/' . $file ;
$return_array = array_merge ( $return_array , traverse_hierarchy
( $fpath ) ) ; }
else {
$return_array [ ] = $fpath ;
}
}
}
return $return_array ;
}
/* Массив изображений */
$images = traverse_hierarchy( $path ) ;
//echo "<pre>" . implode(PHP_EOL, $images) . "</pre>";
(Отредактировано автором: 04 Июля, 2013 - 14:53:33)
morph1k
Отправлено: 08 Июля, 2013 - 16:10:39
Новичок
Покинул форум
Сообщений всего: 14
Дата рег-ции: Июнь 2013
Помог: 0 раз(а)
Есть следующий код который достает фотки с папки
PHP:
скопировать код в буфер обмена
<?PHP
$imgDir = 'путь' ;
foreach ( $imgs as $item ) {
echo '<img src="' . $item . '" alt="' . $item . '" class="box">' ;
}
}
?>
помогите пожалуйста задать этим фоткам определенный размер...
ПОДРОБНЕЕ:
у нас есть фотка с названием name_d.png она должна быть размером в 190 на 190 пикселей;
есть фотка с названием name_d_!.png она должна быть размером 380 на 190 пикселей
И т.д.
За рание большое человеческое спасибо !(Отредактировано автором: 08 Июля, 2013 - 17:36:49)
Darrek
Отправлено: 08 Июля, 2013 - 23:47:35
Новичок
Покинул форум
Сообщений всего: 2
Дата рег-ции: Июль 2013
Помог: 0 раз(а)
с использованием библиотеки GD
PHP:
скопировать код в буфер обмена
<?PHP
$imgDir = 'img' ;
//перебор файлов надо поменять
foreach ( $imgs as $item ) {
//пример
//взял за указатель необходимого размера восклицательный знак
//другие критерии не указаны
if ( strpos ( $item , "_!" ) ) resize
( $imgDir . '/' . $item , 190
, 190
, true ) ; else resize( $imgDir . '/' . $item , 380, 190, true ) ;
}
}
function resize( $path_img , $new_width , $new_height , $save_dim = false ) {
//ВАЖНО - перезаписывает существующий файл
// функция также работает с gif, jpg
// параметр $save_dim- определяет, будут сохранены пропорции или нет
switch ( $type ) {
case IMAGETYPE_JPEG:
case IMAGETYPE_GIF:
case IMAGETYPE_PNG:
}
$koef_w = $new_width / $width ;
$koef_h = $new_height / $height ;
if ( $save_dim == false ) {
if ( $koef_w > $koef_h ) $koef_w = $koef_h ;
else $koef_h = $koef_w ;
}
$new_width = intval ( $width * $koef_w ) ; $new_height = intval ( $height * $koef_h ) ;
switch ( $type ) {
case IMAGETYPE_JPEG:
case IMAGETYPE_GIF:
case IMAGETYPE_PNG:
imagepng ( $new_img , $path_img , 4
) ; break
; // 4 - Степень сжатия: от 0 (нет сжатия) до 9.
}
}
?>
(Отредактировано автором: 09 Июля, 2013 - 00:00:22)
morph1k
Отправлено: 09 Июля, 2013 - 17:18:27
Новичок
Покинул форум
Сообщений всего: 14
Дата рег-ции: Июнь 2013
Помог: 0 раз(а)
Darrek пишет: с использованием библиотеки GD
PHP:
скопировать код в буфер обмена
<?PHP
$imgDir = 'img' ;
//перебор файлов надо поменять
foreach ( $imgs as $item ) {
//пример
//взял за указатель необходимого размера восклицательный знак
//другие критерии не указаны
if ( strpos ( $item , "_!" ) ) resize
( $imgDir . '/' . $item , 190
, 190
, true ) ; else resize( $imgDir . '/' . $item , 380, 190, true ) ;
}
}
function resize( $path_img , $new_width , $new_height , $save_dim = false ) {
//ВАЖНО - перезаписывает существующий файл
// функция также работает с gif, jpg
// параметр $save_dim- определяет, будут сохранены пропорции или нет
switch ( $type ) {
case IMAGETYPE_JPEG:
case IMAGETYPE_GIF:
case IMAGETYPE_PNG:
}
$koef_w = $new_width / $width ;
$koef_h = $new_height / $height ;
if ( $save_dim == false ) {
if ( $koef_w > $koef_h ) $koef_w = $koef_h ;
else $koef_h = $koef_w ;
}
$new_width = intval ( $width * $koef_w ) ; $new_height = intval ( $height * $koef_h ) ;
switch ( $type ) {
case IMAGETYPE_JPEG:
case IMAGETYPE_GIF:
case IMAGETYPE_PNG:
imagepng ( $new_img , $path_img , 4
) ; break
; // 4 - Степень сжатия: от 0 (нет сжатия) до 9.
}
}
?>
Спасибо ! Помогло !
(Добавление)
А еще такой вопрос...
PHP:
скопировать код в буфер обмена
<div id='last_page_image_grid' >
<?PHP
$imgDir = '/image_bot/265' ;
foreach ( $imgs as $item ) {
if ( strpos ( $item , "_!" ) ) $size = "width='330px' height='165px'" ; elseif ( strpos ( $item , "_v" ) ) $size = "height='330px' width='165px'" ; elseif ( strpos ( $item , "_d" ) ) $size = "width='660px' height='165px'" ; else $size = "height='165px' width='165px'" ;
echo '<img src="/image_bot/265/' . $item . '" alt="' . $item . '" ' . $size . ' class="last_page_image_box">' ;
}
}
?>
</div>
Как мне сделать так что бы когда папки нету то выводился какой то текст типа не найдено ?
Потому что сейчас если папки нету то выводится ошибка.?
esterio
Отправлено: 09 Июля, 2013 - 18:32:14
Активный участник
Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012
Откуда: Украина, Львов
Помог: 127 раз(а)
PHP:
скопировать код в буфер обмена
$imgDir = '/image_bot/265' ;
{
foreach ( $imgs as $item )
{
{
$size = "width='330px' height='165px'" ;
$size = "height='330px' width='165px'" ;
$size = "width='660px' height='165px'" ;
else
$size = "height='165px' width='165px'" ;
}
}
echo '<img src="/image_bot/265/' . $item . '" alt="' . $item . '" ' . $size . ' class="last_page_image_box">' ;
}
else
echo 'Folder not found' ;
Поиск в теме | Версия для печати
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
Powered by ExBB FM 1.0 RC1. InvisionExBB