ncrndr
07-07-2015, 22:52
Buona sera a tutti,sono nuovo del forum. Da poco ho iniziato a programmare ed attualmente il mio obbiettivo è riuscire a creare un programma che identifichi i colori di una bitmap.
Ho scritto il seguente codice:
#include<iostream>
#include<windows.h>
#include<stdio.h>
#include<stdlib.h>
#include<gdiplus.h>
using namespace std;
int main(){
HDC hdc;
int altezza,larghezza;
cout<<"\nInserisci la larghezza dell'immagine: ";
cin>>larghezza;
cout<<"\nInserisci l'altezza dell'immagine: ";
cin>>altezza;
int red[4000][4000];
int blue[4000][4000];
int green[4000][4000];
for(int x=1;x<larghezza;x++) {
for(int y=1;y<altezza;y++) {
COLORREF colore=getpixel(hdc, x, y);
red[x][y]=GetRValue(colore);
blue[x][y]=GetBValue(colore);
green[x][y]=GetGValue(colore);
}
}
(il codice continua con l'elaborazione dei dati)
l'unico problema che ho riscontrato è stato che non riesco ad inserire un'immagine in "hdc".
ho provato un po' di tutto: fopen, LoadImage, GetDC ma nessuna di queste ha funzionato.
qualcuno di voi saprebbe gentilmente indicarmi la funzione adatta?
ho inoltre provato ad usare bitmap.getpixel(x,y) ma anche qui il problema è lo stesso :(
Ho scritto il seguente codice:
#include<iostream>
#include<windows.h>
#include<stdio.h>
#include<stdlib.h>
#include<gdiplus.h>
using namespace std;
int main(){
HDC hdc;
int altezza,larghezza;
cout<<"\nInserisci la larghezza dell'immagine: ";
cin>>larghezza;
cout<<"\nInserisci l'altezza dell'immagine: ";
cin>>altezza;
int red[4000][4000];
int blue[4000][4000];
int green[4000][4000];
for(int x=1;x<larghezza;x++) {
for(int y=1;y<altezza;y++) {
COLORREF colore=getpixel(hdc, x, y);
red[x][y]=GetRValue(colore);
blue[x][y]=GetBValue(colore);
green[x][y]=GetGValue(colore);
}
}
(il codice continua con l'elaborazione dei dati)
l'unico problema che ho riscontrato è stato che non riesco ad inserire un'immagine in "hdc".
ho provato un po' di tutto: fopen, LoadImage, GetDC ma nessuna di queste ha funzionato.
qualcuno di voi saprebbe gentilmente indicarmi la funzione adatta?
ho inoltre provato ad usare bitmap.getpixel(x,y) ma anche qui il problema è lo stesso :(