Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Графика > Преобразовать изображение в серый


Автор: elvis79 25.3.2009, 12:16
Помогите преобразовать фотку, полученую из БД из цветной в градации серого. Нашел кучу примером, но все они работают из файлами, а у меня файла как такового нету - изображение вытаскивается с БД.

Одна фотография файл photo.php?id=...
Код

<?php
  header("Content-type:image/jpeg");
  require_once('formating.php');
  require_once('sql.php');
  
  $id  = $_GET['id'];
  $conn = db_connect();
  $stmt="select photo from personal where id_personal='$id'";
  $sth = ibase_query($conn, $stmt) OR DIE(ibase_errmsg());
  $result = db_result_to_array($sth);
  FOREACH ($result AS $row)
  {
    $blob_data = ibase_blob_info($row[0]);
    if ($blob_data > 1) {
      ibase_blob_echo($row[0]);
    }  
  }  
?>  


Отображение:
Код

      echo '<image src="photo.php?id='.$id.'" width=80>';


Функции createimagefromjpeg('photo.php?id='.$id) не роботают. Оно и понятно. Ей надо передать файл как параметр. В файле photo.php тоже не удалось ничего добится. $row[0] не воспринимается как изображение (((


Автор: bars80080 25.3.2009, 13:08
Цитата(elvis79 @  25.3.2009,  11:16 Найти цитируемый пост)
Нашел кучу примером, но все они работают из файлами, а у меня файла как такового нету - изображение вытаскивается с БД.

сделай два скрипта, первый занимается выборкой из БД и отдачей файла как картинки,
а затем передай имя этого скрипта как url в функцию во втором скрипте (кстати, называется она вроде как: http://www.php.ru/manual/function.imagecreatefromjpeg.html)

Добавлено через 1 минуту и 35 секунд
тьфу, понял, что ты это сделал, но по документации написано, что урл передавать можно 
Цитата

imagecreatefromjpeg -- Create a new image from file or URL
укажи полный, начиная с http:

Автор: elvis79 25.3.2009, 13:48
Спасибо! Уже сам дошел к этому. Чисто случайно передал полный путь. А как получить полный путь. Есть какая-то функция? Ато вдруг я сайт перенесу )))

Автор: bars80080 25.3.2009, 14:04
сделайте var_dump($_SERVER); посмотрите, какие параметры есть, после этого в вашем конфиге пишете базовый адрес: 
Код

$BASE_URL = $_SERVER['HTTP_HOST'].'/images/';


а для картинок указываете:

Код

echo '<image src="'.$BASE_URL.'photo.php?id='.$id.'" width=80>';

в этом случае, при переносе между директориями достаточно поменять всего одно значение. а если перенос просто между сайтами, то вообще ничего менять не придётся

Автор: elvis79 25.3.2009, 14:15
Спасибо! Вопрос решен
Код

  $BASE_URL = $_SERVER['HTTP_HOST'];
  $img = imagecreatefromjpeg('http://'.$BASE_URL.'/photo.php?id='.$id);



Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)