Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.04.2010, 00:58   #1
utrnjhyfgjktjy
Пользователь
 
Регистрация: 17.12.2009
Сообщений: 13
По умолчанию Работа с BMP файлами в PHP

Здравствуйте. Суть задания такова: имеется BMP файл нужно его отобразить по горизонтали. На приложенных скринах видно, что получилось у меня + выложил то, что я написал. Вопрос :почему мое изображение полосатое, а не такое цветное как в исходном файле?

Код:
<!doctype html public "-//W3C//DTD HTML 4.0 //EN"> 
<html>
<head>
       <title>Лабараторная работа №2</title>
</head>
<body>
 <form action="laba2.php" method="POST" >
 <p align="center">Отображение рисунка по горизонтали</p>
 <br><br>
 Введите путь к файлу:
 <input type="text" name="input" value="image.bmp">
 <input type="submit" value="Invert" >
 </form>
 <?php
     $inp=$_POST['input'];
     $inp1=fopen($inp,"r");
     $nametemp="lala.bmp";
     $output=fopen($nametemp,"w");
     $buffer=fread($inp1,18);
     fwrite($output,$buffer);
     $width=fread($inp1,4);
     fwrite($output,$width);
     $height=fread($inp1,4);
     fwrite($output,$height);
     $temp=fread($inp1,28);
     fwrite($output,$temp);
     $midth_r = intval($width);
$height_r = intval($height);
$stepen = 1;
for($i = 0;$i < 4;$i++)
{
 $midth_r = $midth_r + ord($width[$i])*$stepen;
 $height_r = $height_r + ord($height[$i])*$stepen;
 $stepen = $stepen*256;
}
if ($midth_r % 4 == 0)
{
  $size_w = $midth_r*3;
}
else
{
  $size_w = ($midth_r*3 / 4 + 1)*4;
}
$count=$size_w/4;
for ($i=0;$i<$height_r;$i++)
{
    $buf1=str_repeat("    ",$count);
    for ($j=0;$j<$count;$j++)
    {
    $buff2=fread($inp1,3);
    $buff3=fread($inp1,1);
    $buff4=strrev($buff2);
    $buff4=$buff4.$buff3;
    $buf1=substr_replace($buf1,$buff4,$size_w-($j+1)*4,4);
}
   fwrite($output,$buf1);
}
fclose($inp1);
fclose($output);
 ?>
 <img src="image.bmp">
 <img src="lala.bmp">
</body>
</html>
image.bmp исходное изображение
lala.bmp то, что получилось.
Если будут проблемы с загрузкой, то в файле скрин.jpg скрин работа программы
Изображения
Тип файла: bmp Image.bmp (697.9 Кб, 149 просмотров)
Тип файла: bmp lala.bmp (697.9 Кб, 125 просмотров)
Тип файла: jpg Скрин.jpg (71.2 Кб, 123 просмотров)

Последний раз редактировалось utrnjhyfgjktjy; 27.04.2010 в 01:01.
utrnjhyfgjktjy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[php] Работа с XML файлами dolci2006 PHP 0 20.04.2010 16:54
php работа с файлами Rymbil PHP 7 30.03.2010 18:47
Работа с файлами Ренат Садыков БД в Delphi 1 21.07.2009 16:15
работа с .bmp DeadWorm Общие вопросы C/C++ 4 16.04.2009 14:09
Работа с файлами DJ Socol Win Api 1 17.07.2007 09:18