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

Не могу найти ошибку в коде. BMP файл, поворот на 90 - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибка при использовании типа ifstream http://www.cyberforum.ru/cpp-beginners/thread647842.html
Заголовочный файл "user.h" #pragma once class User { public: void Read(ifstream& data); }; Файл "user.cpp" #include <fstream>
C++ Сортировка массива Дан массив, элементы которого равны либо 1 либо 2. Отсортировать таким образом, чтобы за каждой единицей следовала двойка, причём если таких элементов больше, они выписывались в конец. Например (2,1,1,1,2,1). Должно получится 1,2,1,2,1,1. http://www.cyberforum.ru/cpp-beginners/thread647832.html
Функция для узнавания пути к системной папке C++
Я на басике с помощью какой-то функции получал стринг-строку какой угодно папки: будь то раб стол или же апплиикатион дата. С переходом на с++ я во-первых забыл саму функцию, методом тыка я бы ее интерпретировал, во-вторых я ее не нашел ни в мсдн ни в висуалбасик через его подбор. Хелп ме. п.с сори было впадлу переключать 100500 раз язык
C++ error C2512: no appropriate default constructor available, несмотря на наличие конструктора по умолчанию
Вот код: class University { string name; Human *chief; public: vector<Faculty> subList;
C++ Проблемы с C++ http://www.cyberforum.ru/cpp-beginners/thread647829.html
Вот в универе дали код проги и сказали розабраться и обьяснить что это как оно работает и с чем его едять. Помогите разобраться что это вообще.Я чайник в СИ, ничего не понимаю=( // arraysIntoFunctions.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "header.h" #include "iostream"
C++ Нужно подправить код и сделать dll Всем привет. кто может оказать помощь такого плана - есть исходники одной проги на с++ (калькулятор для одной игры). нужно подправить их и скомпилировать в виде dll, чтобы в последствии можно было подключить к другой проге на c# (моей) и использовать расчеты из либы. у меня она даже не компилируется, выдает кучу ошибок в вс2010. хотя когда то давно когда стоял рад студио все отлично... подробнее

Показать сообщение отдельно
iTD
0 / 0 / 0
Регистрация: 14.03.2012
Сообщений: 29

Не могу найти ошибку в коде. BMP файл, поворот на 90 - C++

06.09.2012, 22:41. Просмотров 1837. Ответов 10
Метки (Все метки)

Здрасти !
Друзья, помогите найти ошибку: Задача /* Написать программу, формирующую по исходному BMP файлу новый BMP файл, повернутый на 90 градусов влево. */ Как устроены бмпшки разобрался. У меня 24 битовая картинка 480х320.

Сам код:

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
35
36
37
38
39
40
41
42
43
44
/* Написать программу, формирующую по исходному BMP файлу новый BMP файл,
    повернутый на 90 градусов влево. */
 
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <Windows.h>
 
void main ()
{
    FILE *f1, *f2;
    BITMAPFILEHEADER bmfh;
    BITMAPINFOHEADER bmih;
    RGBTRIPLE RGBColor;
    
    f1=fopen("1.bmp", "r+b");
    fread(&bmfh, sizeof(bmfh), 1, f1);
    fread(&bmih, sizeof(bmih), 1, f1);
    int h, w;
    w=bmih.biWidth;
    h=bmih.biHeight;
    
    f2=fopen("2.bmp", "w+b");
    bmih.biWidth=h;
    bmih.biHeight=w;
    fwrite(&bmfh, sizeof(bmfh), 1, f2);
    fwrite(&bmih, sizeof(bmih), 1, f2);
    
    int k=1, j=0;
    for(int i=0; i<bmih.biHeight*bmih.biWidth; i++)
    {
        fread(&RGBColor, sizeof(RGBColor),1, f1);
        // указываем позицию пикселя !!!
        fseek(f2, (k*bmih.biWidth-j)*sizeof(RGBColor), SEEK_SET);
        fwrite(&RGBColor, sizeof(RGBColor), 1, f2);
        if(k==bmih.biHeight)
        {
            k=0;
            j++;
        }
        k++;
    }
    fcloseall();
}
Собственно 1.bmp и 2.bmp входной и выходной файлы соответственно. Меняю местами высоту и ширину картинки и записываю во 2 файл BMPINFOHEADER & BMPFILEHEADER. Далее считываю содержимое битового образа и записываю во 2 файл (fseek указываю куда ставить каждый пиксель(надеюсь правильно выразился)).

Проблема в том, что после завершения программы 2ой файл (2.bmp) не открывается Хотя весит он столько же сколько и исходный 1.bmp.

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