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

Увеличить BMP изображение в два раза - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Описать класс с именем MARSH http://www.cyberforum.ru/cpp-beginners/thread879812.html
1. Описать класс с именем MARSH, содержащий следующие поля: • название начального пункта маршрута; • название конечного пункта маршрута; • номер маршрута. 2. Включить методы, выполняющие следующие действия: • ввод с клавиатуры данных в массив, состоящий из восьми элементов типа mARSH; записи должны быть упорядочены по номерам маршрутов; • вывод на экран информации о маршруте, номер...
C++ Найти ошибку в перегрузке копиконструктора и операторов Вот код. в QT отлично работает. а в Visual Studio выдает ошибку на строке (a+b).show(); помогите понять в чем проблема. #include <iostream> using namespace std; struct vec {double x,y,z;}; class arr_vec { private: double *x; double *y; //указатели на координаты http://www.cyberforum.ru/cpp-beginners/thread879797.html
C++ чтение матрицы из файла
Здравствуйте. Помогите, пожалуйста сделать запрос в самом начале программы(считать из файла или ввести вручную) и организовать само считывание вот текст программы #include <iostream> #include <iomanip> #include <ctime> #include <cmath> #include <iomanip> #include <fstream> #include <conio.h>
C++ Класс "Точка". Функция - определение в каком координатном угле находится точка
1. Определить в глобальной области видимости функцию в соответствии с вариантом. Доступ к полям класса осуществить с помощью соответствующих методов класса; 2. Определить дружественную функцию с аналогичной функциональностью; 3. В функции main вывести на экран результаты работы обеих функций для заданного объекта (номер объекта в массиве вводится с клавиатуры). Результаты работы функций должны...
C++ Из нерассортированного списка целых чисел удалить все наибольшие элементы, оставив первый из них http://www.cyberforum.ru/cpp-beginners/thread879755.html
Доброго времени суток. Никак не могу сделать эти задания(( Буду премного благодарен тому, кто поможет мне хоть с одной из них! Из нерассортированного списка целых чисел удалить все наибольшие элементы, оставив первый из них. Выручите плиз! Очень нужны эти задачи!
C++ Перевести целое отрицательное четырёхбайтное число из десятичной в двоичную систему счисления Доброго времени суток. Никак не могу сделать эти задания(( Буду премного благодарен тому, кто поможет мне хоть с одной из них! Перевести целое отрицательное четырёхбайтное число из десятичной в двоичную систему счисления: (повторение) используя алгоритм деления на 2 (см. первый семестр); (повторение) используя битовые операции (см. первый семестр); используя объединение и поля битов. подробнее

Показать сообщение отдельно
Eagle123
6 / 6 / 0
Регистрация: 03.10.2012
Сообщений: 51
26.05.2013, 21:29     Увеличить BMP изображение в два раза
Дано задание увеличить 8-битное 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
35
36
37
void BMP::x2_zoom()
{
    unsigned int n = this->BMIH.biWidth;
    unsigned int m = this->BMIH.biHeight;
    unsigned int _new_n = this->BMIH.biWidth * 2;
    unsigned int _new_m = this->BMIH.biHeight * 2;
 
    BYTE *buff = new BYTE [n * m];
    file.seekg(this->BMH.bfOffbits + 14, ios::beg);
    for(int i = 0; i < n * m; i ++)
    {
        file.read((char*)&buff[i], sizeof(BYTE));
    }
 
    BYTE *New_2x_Image = new BYTE [_new_m * _new_n];
 
    int i = 0;
    file.seekg(this->BMH.bfOffbits + 14, ios::beg);
    
    for(int i = 0, j = 0; i < n * m, j < _new_n * _new_m; i ++, j += 4)
    {
        New_2x_Image [j] = buff [i];
        New_2x_Image [j + 1] = buff [i];
        New_2x_Image [j + 2] = buff [i];
        New_2x_Image [j + 3] = buff [i];
    }
    this->BMIH.biWidth = _new_n;
    this->BMIH.biHeight = _new_m;
 
    file.seekg(0, ios::beg);
    file.write((char*)&*this, sizeof(*this));
    file.write((char*)New_2x_Image, sizeof(New_2x_Image));
    
    delete[] buff;
    delete[] New_2x_Image;
    
}
И вот этот момент как правильно?
Так?:
C++
1
file.write((char*)&*this, sizeof(*this));
Или так?
C++
1
file.write((char*)this, sizeof(*this));
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 18:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru