|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Jul 2015
Messaggi: 2
|
[c++]problema con getpixel
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: 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)
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 |
|
|
|
|
|
#2 |
|
Junior Member
Iscritto dal: Jul 2015
Messaggi: 2
|
nessuno riesce ad aiutarmi?
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Ma cosa devi fare?
E inoltre perchè martellarsi sui cabbasisi con le GDI? La prima cosa che mi viene in mente è che nel tuo codice non hai inizializzato le GDI. Dovrebbe essere qualcosa del genere: Codice:
int main()
{
ULONG_PTR m_gdiplusToken;
GdiplusStartupInput gdiplusStartupInput;
GdiplusStartup(&m_gdiplusToken, &gdiplusStartupInput, NULL);
Bitmap bitmap(L"c:\path\to\image.jpg");
Color pixelColor;
for (int h = 0; h <bitmap.GetHeight(); h++)
{
for (int w = 0; w < bitmap.GetWidth(); w++)
{
bitmap.GetPixel(w, h, &pixelColor);
cout << pixelColor.GetA() << endl;
cout << pixelColor.GetB() << endl;
cout << pixelColor.GetG() << endl;
cout << pixelColor.GetR() << endl;
}
}
GdiplusShutdown(m_gdiplusToken);
return 0;
}
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 01:19.



















