Skip to content
Snippets Groups Projects
Commit 0886e4fa authored by DUPASQUIER YOANN p2301526's avatar DUPASQUIER YOANN p2301526
Browse files

2 fonctions débugguées

parent e7e00a65
No related branches found
No related tags found
No related merge requests found
Pipeline #188897 canceled
......@@ -80,17 +80,17 @@ void Image::testRegression() {
cout<<int((i.getPix(1,2)).r)<<"/"<<int((i.getPix(1,2)).g)<<"/"<<int((i.getPix(1,2)).b)<<endl;
};
/*void Image::sauver(const string &filename) const
void Image::sauver(const string &filename) const
{
ofstream fichier(filename.c_str());
assert(fichier.is_open());
fichier << "P3" << endl;
fichier << dimx << " " << dimy << endl;
fichier << "255" << endl;
for (unsigned int y = 0; y < dimy; ++y)
for (unsigned int x = 0; x < dimx; ++x)
for (unsigned int y = 0;(int) y < dimy; ++y)
for (unsigned int x = 0; (int) x < dimx; ++x)
{
Pixel &pix = getPix(x++, y);
const Pixel &pix = getPix(x, y);
fichier << +pix.r << " " << +pix.g << " " << +pix.b << " ";
}
cout << "Sauvegarde de l'image " << filename << " ... OK\n";
......@@ -101,27 +101,25 @@ void Image::ouvrir(const string &filename)
{
ifstream fichier(filename.c_str());
assert(fichier.is_open());
char r, g, b;
unsigned char r, g, b;
string mot;
dimx = dimy = 0;
fichier >> mot >> dimx >> dimy >> mot;
assert(dimx > 0 && dimy > 0);
if (tab != nullptr)
delete[] tab;
tab = new Pixel[dimx * dimy];
for (unsigned int y = 0; y < dimy; ++y)
for (unsigned int x = 0; x < dimx; ++x)
for (unsigned int y = 0; (int) y < dimy; ++y)
for (unsigned int x = 0;(int)x < dimx; ++x)
{
fichier >> r >> b >> g;
getPix(x, y).r = r;
getPix(x, y).g = g;
getPix(x, y).b = b;
r = getPix(x, y).r ;
g = getPix(x, y).g ;
b = getPix(x, y).b ;
}
fichier.close();
cout << "Lecture de l'image " << filename << " ... OK\n";
}
void Image::afficherConsole()
/*void Image::afficherConsole()
{
cout << dimx << " " << dimy << endl;
for (unsigned int y = 0; y < dimy; ++y)
......
......@@ -101,7 +101,7 @@ public:
* @param filename nom de l'image à sauvegarder
* @return pas de valeur de retour
*/
//void Isauver(const string &filename) const;
void sauver(const string &filename) const;
/**
* @brief ouvre l'image "filename" en plaçant ses pixels dans u tableau de pixels
......@@ -109,7 +109,7 @@ public:
* @param filename nom de l'image à ouvrir
* @return Description de la valeur de retour.
*/
//void ouvrir(const string &filename);
void ouvrir(const string &filename);
/**
* @brief Affiche les valeurs rgb de l'image sur la console, de la même forme que l'image
......
#include <iostream>
#include "Image.h"
#include "ImageViewer.h"
#include "SDL_surface.h"
using namespace std;
ImageViewer::ImageViewer() {
// Initialiser SDL
if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER) != 0) {
return -1;
}
// Configurer SDL pour OpenGL 3.2 avec un profil de base
SDL_GL_SetAttribute(SDL_GL_CONTEXT_FLAGS, SDL_GL_CONTEXT_FORWARD_COMPATIBLE_FLAG);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 2);
// Créer une fenêtre avec OpenGL
SDL_Window* window = SDL_CreateWindow("ImGui SDL2+OpenGL3 Example", SDL_WINDOWPOS_CENTERED,
SDL_WINDOWPOS_CENTERED, 200, 200, SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE);
// Créer un contexte OpenGL
SDL_GLContext gl_context = SDL_GL_CreateContext(window);
// Charger les extensions OpenGL avec ImGui
IMGUI_CHECKVERSION();
ImGui::CreateContext();
ImGuiIO& io = ImGui::GetIO();
(void)io;
// Configurer les backends pour SDL et OpenGL
ImGui_ImplSDL2_InitForOpenGL(window, gl_context);
ImGui_ImplOpenGL3_Init("#version 150");
}
ImageViewer::~ImageViewer() {
// Nettoyage
ImGui_ImplOpenGL3_Shutdown();
ImGui_ImplSDL2_Shutdown();
ImGui::DestroyContext();
SDL_GL_DeleteContext(gl_context);
SDL_DestroyWindow(window);
SDL_Quit();
}
ImageViewer::afficher(Image im) {
// Boucle principale
bool running = true;
while (running) {
SDL_Event event;
while (SDL_PollEvent(&event)) {
ImGui_ImplSDL2_ProcessEvent(&event);
if (event.type == SDL_QUIT) {
running = false;
}
}
// Début du cadre ImGui
ImGui_ImplOpenGL3_NewFrame();
ImGui_ImplSDL2_NewFrame(window);
ImGui::NewFrame();
// Créez ici votre interface utilisateur ImGui
// Fin du cadre ImGui
ImGui::Render();
glViewport(0, 0, (int)io.DisplaySize.x, (int)io.DisplaySize.y);
glClearColor(0.85f, 0.85f, 0.85f, 1.00f);
glClear(GL_COLOR_BUFFER_BIT);
ImGui_ImplOpenGL3_RenderDrawData(ImGui::GetDrawData());
SDL_GL_SwapWindow(window);
}
#ifndef _ImageViewer_H
#define _ImageViwer_H
#include "Image.h"
class ImageViewer {
private:
SDL_Window *window;
SDL_Renderer *renderer;
public:
unsigned char r,g,b;
ImageViewer();
~ImageViewer();
void afficher(Image im);
};
#endif
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment