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

C++

Войти
Регистрация
Восстановить пароль
 
Mefiresu
0 / 0 / 0
Регистрация: 04.04.2010
Сообщений: 12
#1

SDL Графика - C++

16.01.2013, 15:03. Просмотров 693. Ответов 0
Метки нет (Все метки)

Может кто чем поможет?
-Написать фильтр преобразования матрицы изображения к бинарному виду.
(только белый (255.255.255) или только чёрный (0.0.0)(двойным циклом , передавать число. >127 - становится чёрным, <127 - белым.)
-Написать фильтр преобразования к чёрнобелому виду. (Greyscale).

Основной код
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include <stdio.h>
#include <stdlib.h>
#include<SDL2/SDL.h>
struct Pixel{
unsigned char R;
unsigned char G;
unsigned char B;
};
 
struct INFO{
int width;
int height;
short int depth;
int size;
};
 
struct Pixel **bitmap;
struct INFO inf;
 
int readInfo(char *path){
FILE *bmp;
bmp=fopen(path,"rb");
if(!bmp)return 1;
fseek(bmp,12,SEEK_SET);
fread(&inf.width,sizeof(inf.width),1,bmp);
fread(&inf.height,sizeof(inf.height),1,bmp);
fseek(bmp,2,SEEK_CUR);
fread(&inf.depth,sizeof(inf.depth),1,bmp);
fseek(bmp,4,SEEK_CUR);
fread(&inf.size,sizeof(inf.size),1,bmp);
 
fclose(bmp);
return 0;
}
 
void initMatrix(){
register unsigned short int i;
bitmap=(struct Pixel**)malloc(inf.height*sizeof(struct Pixel*));
for(i=0;i<inf.height;i++)
    bitmap[i]=(struct Pixel*)malloc(inf.width*sizeof(struct Pixel));
}
 
int loadBMP(char *path){
FILE *bmp;
bmp=fopen(path,"rb");
if(!bmp)return 1;
 
register unsigned short int i,j;
for(i=0;i<inf.height;i++){
    for(j=0;j<inf.width;j++)
        fread(&bitmap[i][j],sizeof(struct Pixel),1,bmp);
}
fclose(bmp);
return 0;
}
 
void Show(SDL_Renderer *rend){
register unsigned short int i,j;
for(i=0;i<inf.height;i++){
    for(j=0;j<inf.width;j++){
    SDL_SetRenderDrawColor(rend,bitmap[i][j].B,bitmap[i][j].G,bitmap[i][j].R,0);
    SDL_RenderDrawPoint(rend,j,i);
 
    }
 
}
}
 
int main(int argc,char **argv)
{
     SDL_Window *win;
     SDL_Renderer *render;
    if(SDL_Init(SDL_INIT_VIDEO)<0)return 1;
    win=SDL_CreateWindow("Events",SDL_WINDOWPOS_CENTERED,
                         SDL_WINDOWPOS_CENTERED,600,600,SDL_WINDOW_SHOWN);
    render=SDL_CreateRenderer(win,-1,SDL_RENDERER_ACCELERATED);
 
readInfo("test.bmp");
initMatrix();
loadBMP("test.bmp");
 
Show(render);
SDL_RenderPresent(render);
 
 
SDL_Delay(10000);
SDL_Quit();
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2013, 15:03     SDL Графика
Посмотрите здесь:

Документация по SDL C++
SDL - Конфигурирование C++
C++ SDL Графика.
Visual C++ Некомпилируется SDL
C++ инициализация SDL
Не компилится SDL Visual C++
C++ Установка SDL 2
C++ SDL C++
SDL mouse C++
C++ Linux Sdl, debian и с++
Оптимизация SDL C++
Подключение SDL C++ Builder

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 04:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru