Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Класс Прямоугольник https://www.cyberforum.ru/ cpp-beginners/ thread1366873.html
Разработайте с использованием TDD класс , моделирующий сущность «Прямоугольник». Прямоугольник обладает следующими свойствами: • Ширина (width) • Высота (height) • Координата X левого края...
C++ Как правильно распознать команды со стандартного потока ввода
Разработайте программу, использующую разработанный Вами класс , которая обрабатывает команды пользователя, вводимые им со стандартного потока ввода: • TurnOn. Включает телевизор, если он был...
C++ Бинарный поиск https://www.cyberforum.ru/ cpp-beginners/ thread1366869.html
Прочитал статью на хабре, о том, что только 10 проц программистов смогут реализовать бин поиск. Раньше никогда с ним не имел дело, прочитав принцип работы, вот что написал. Товарищи прошу...
C++ Задана матрица m*n. Найти сумму элементов строк K и l Не понимаю, что неправильно и почему она не работает. может кто объяснить?:cry: Задана матрица m*n. найти сумму элементов строк K и l. #include <iostream> using namespace std; int main() {... https://www.cyberforum.ru/ cpp-beginners/ thread1366868.html
C++ Нарушение прав доступа при записи по адресу
#include "stdafx.h" #include <iostream> #include <cstdlib> using namespace std; struct worker { char *fio; char *dolzh; int god;
C++ Что означает сообщение компилятора code block Process terminated with status 127 О чем говорит данная надпись? "code block Process terminated with status 127" https://www.cyberforum.ru/ cpp-beginners/ thread1366830.html
C++ Графы. Алгоритм Прима Начал изучать графы и в месте с ними алгоритм Прима. Суть понял, но разобрать(понять) реализацию на с++ не получилось. решил написать свою. Это полноценный алгоритм Прима? #include <fstream>... https://www.cyberforum.ru/ cpp-beginners/ thread1366828.html Перегрузка вывода в поток C++
Есть клас вектор подскажите как сделать вывод в поток в виде дружественых функций например cout << V << “\n”; // выведет = 10, = 11 и т.д. #include "stdafx.h" #include <conio.h> #include...
C++ Графическое задание на С++: танчики Здравствуйте форумчане, сегодня на практике в универе дали задание, написать программу на С++, в которой должно быть поле, на котором ездят танки трех типов: легкие, средние и тяжелые. Все танки... https://www.cyberforum.ru/ cpp-beginners/ thread1366784.html C++ Написать функцию поиска и вывода на экран ВСЕХ делителей чисел из переданного диапазона Доброго времени суток. Прошу помочь. Задание: Написать функцию поиска и вывода на экран ВСЕХ делителей чисел из переданного диапазона Проблема: немного туплю, я не понимаю, как дописать алгоритм,... https://www.cyberforum.ru/ cpp-beginners/ thread1366698.html
Литература C++
Доброго времени суток. Я студент первого курса ДНУ им. Олеся Гончара, специальности "системный анализ". В данный момент изучаю c++ и c#. Но мой учитель из лицея сказал, что 90% успеха стать...
C++ Треугольники и перебор точек https://www.cyberforum.ru/ cpp-beginners/ thread1366641.html
Найти три треугольника с вершинами в заданном множестве точек на плоскости так, чтобы второй треугольник лежал строго внутри первого, а третий внутри второго. Допустим, что точки даны в виде...
160 / 101 / 14
Регистрация: 17.10.2012
Сообщений: 488
02.02.2015, 16:31 0

Работа с пикселями, побитовое копирование - C++ - Ответ 7178426

02.02.2015, 16:31. Показов 1448. Ответов 4
Метки (Все метки)

Ответ

Функция загрузки BMP24
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
int     image_load(FILE* file_handler, Image* image) {
 
    int result;
    uint32_t delta = 0;
    uint32_t i = 0;
 
    BMPHeader bmp_header;
    Size2i size = {0, 0};
    
    result = fread(&bmp_header, sizeof(BMPHeader), 1, file_handler);
    if( result != 1 ) {
        fwprintf_s(stderr, L"Unexpected end of file\n");
        return 0;
    }
    
    if(
        bmp_header.sig[0] != 'B'
        ||
        bmp_header.sig[1] != 'M'
        ) {
 
        fwprintf_s(stderr, L"Thus file probably not bitmap image\n");
        return 0;
 
    }
 
    if( bmp_header.bit_per_pix != 24 )
        fwprintf_s(stderr, L"This format is unsupported, BMP24 only\n");
 
    size.height = bmp_header.height;
    size.width = bmp_header.width;
 
    if( !image_mem_alloc(image, size) ) {
        fwprintf_s(stderr, L"Malloc return NULL\n");
        return 0;
    }
 
    image->size = size;
 
    delta = _0(size.width);
 
    rewind(file_handler);
    fseek(file_handler, bmp_header.ptr_to_data, SEEK_CUR);
 
    for( i = 0; i < size.height; i++ ) {
 
        fread(
            &(image->matrix_ptr[ i * size.width ]),
            sizeof(BGRComponents),
            size.width,
            file_handler
            );
 
        fseek(file_handler, (int)delta, SEEK_CUR);
 
    }
 
    fclose(file_handler);
 
    return 1;
 
}
Функция копирования
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
int     image_clone(Image* dst, Image* src) {
 
    Size2i i = {0, 0};
 
    if( !image_mem_alloc(dst, src->size) ) return 0;
 
    for( i.width = 0; i.width < src->size.width; i.width++ ) {
 
        for( i.height = 0; i.height < src->size.height; i.height++ ) {
 
            image_write_at(
                dst,
                image_read_at( src, i.width, i.height ),
                i.width,
                i.height
                );
 
        }
 
    }
 
    return 0;
 
}
Остальной код с описанием лежит здесь.
Непонятно, что значит "Копированию подлежит только одна из составляющих цвета (красная-зелёная-синяя)". А что делать с остальными компонентами? Заполнить их конкретным цветом? И зачем их побитово копировать?

Вернуться к обсуждению:
Работа с пикселями, побитовое копирование C++
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.02.2015, 16:31
Готовые ответы и решения:

Полное (побитовое) копирование объекта одной строчкой кода. не ссылки
Добрый день, подскажите пожалуйста, как быстро и безболезненно можно скопировать значения одного...

Побитовое копирование double
Доброго времени суток! Преамбула: В целях интеграции Lua в движок C++ пытаюсь написать класс...

Побитовое копирование рисунка
Есть задание на курсач: Разработать программу, демонстрирующую влияние установленного ...

работа с пикселями
Помогите с кодом. Требуется загрузить любое изображение в формате BMP, далее изображение делится по...

4
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.02.2015, 16:31

c# работа с пикселями.
бешеный проблема. Очень надо добить эту программу. Тут работа с изображениями, суть в том, что...

Работа с пикселями
Возможно ли работать с пикселями в С++? Сравнение цветов пикселей требуется Добавлено через 2...

Работа с пикселями
Я только осваиваюсь с графикой, но пока ниче не получается...Если Вам не трудно, то помогите с этой...

Работа с пикселями в C#
Здравствуйте. Имеется приложение на C#, которое берет изображение с веб-камеры в PictureBox. На...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.