Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Открытие и запись bmp-файла - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как подсчитать Длину строки в двойном массиве char http://www.cyberforum.ru/cpp-beginners/thread245401.html
Как подсчитать Длину строки в двойном массиве char char c; int a; for(int j=0;j<10;j++) for(int i=0;i<10;i++) cin >> c;//Здесь я в вожу содержание //а здесь нужно в a засунуть длину...
C++ работа с файлами Подскажите, как в текстовом файле напечатать все строки, длина которых равна заданному числу? http://www.cyberforum.ru/cpp-beginners/thread245378.html
C++ Нахождение точки пересечения функций
Необходимо вычислить абсциссы точек пересечения 3 функций. Отрезки, где программа будет искать точки пересечения, определить вручную. Сделать методом хорд (секущих). В программе описать функцию...
решение на c++ C++
Добрый день... Не могу решить 2 задачи...И не знаю где ошибка... Прошу пожалуйста - укажите на ошибки(помогите их исправить), буду вам очень признателен за помощь.. Задача №1 Папа Карло...
C++ Знаки елементов. http://www.cyberforum.ru/cpp-beginners/thread245368.html
Условие: Ввести с клавиатуры N элементов и проверить чередуются ли знаки. Если да , то вывести на экран "знаки одинаковые". Если нет, то написать все элементы со знаком "+" или "-". С++ ...
C++ Преобразованиие Хафа для линий через opencv #include <stdafx.h> #include <cv.h> #include <highgui.h> #include <math.h> int main(int argc, char** argv) { argv = "images/p1.png"; IplImage* image = cvLoadImage( argv,... подробнее

Показать сообщение отдельно
Ortistx
1 / 1 / 0
Регистрация: 19.02.2011
Сообщений: 39

Открытие и запись bmp-файла - C++

19.02.2011, 22:32. Просмотров 10941. Ответов 8
Метки (Все метки)

Здравствуйте уважаемые участники форума.

Прошу помощи, т.к. не могу найти ошибку в программе. Задача - прочитать побайтно файл bmp и записать его в другой bmp файл. Использую следующий код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
int main()
{   
 
     // Объявляем структуры
     BITMAPFILEHEADER bfh_l;
     BITMAPINFOHEADER bih_l;
     RGBTRIPLE rgb_l;
    
    FILE * f1, * f2;
 
    f1 = fopen("1.bmp", "r+b");
    f2 = fopen("2.bmp", "w+b");
 
 
    fread(&bfh_l,sizeof(bfh_l),1,f1);       //Запихиваем файловый заголовок в структуру BITMAPFILEHEADER
    fwrite(&bfh_l, sizeof(bfh_l), 1, f2);   //
    fread(&bih_l,sizeof(bih_l),1,f1);       //Запихиваем заголовок изображения в структуру BITMAPINFOHEADER
    fwrite(&bih_l, sizeof(bih_l), 1, f2);   //
 
    for(int i=0;i< bih_l.biHeight;i++)
    {
        for (int j = 0; j < bih_l.biWidth; j++)
        {
 
            fread(&rgb_l, sizeof(rgb_l),1, f1);
            fwrite(&rgb_l, sizeof(rgb_l), 1, f2);
        }
        
    }
        
    fcloseall();
    getch();
   return 0;
}
Исходная картинка: 1.bmp
То, что получилось: 2.bmp
(на качество не обращайте внимание - пересохранял в jpeg чтобы выложить на форум. Главное отличие, что во 2ой картинке присутствует горизонтальная черная полоса сверху)

В целом файл копируется, но сверху почему-то полоса получается черная.
Прошу указать ошибку. Заранее спасибо.
0
Изображения
  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru