basti_help
Grünschnabel
Und zwar brauch ich ein Programm, dass ein Bild einliest dies abspeichert und dann die Farbwerte von einem RGB-Farbraum zu einem HSV-Farbraum umwandelt hab auch schon ein paar teile allerdings fehlt mir da noch weiß allerdings net was (struct?) Vielleicht könnt ihr mir ja weiterhelfen hier der Code übriegens c++
ZUM EINLESEN:
ZUM UMRECHEN:
müssten dann halt noch so als übergabe verbunden werden, dass die Wert vom einlesen an das zum Umrechnen weiter gegeben werden
ZUM EINLESEN:
Code:
#include <vcl.h>
#include<iostream.h>
#include<fstream.h>
using namespace std;
int main(int argc, char* argv[])
{
ifstream *file = new ifstream("BMW.bmp", ios::binary);
file->seekg(54, ios::beg); // jump to bmp data, starts at byte 54
char *buffer = new char[48];
file->read(buffer, 48);
for(int i=0; i<48; i++)
printf("data byte %d = %d\n", i, (unsigned char)buffer[i]);
file->close();
}
Code:
#include <math.h>
void HSVtoRGB()
{
int i;
float f, p, q, t,hTemp, s, h, r, g, b, v;
if( s == 0.0 || h == -1.0) // s==0? Totally unsaturated = grey so R,G and B all equal value
{
r = g = b = v;
return;
}
hTemp = h/60.0f;
i = (int)floor( hTemp ); // which sector
f = hTemp - i; // how far through sector
p = v * ( 1 - s );
q = v * ( 1 - s * f );
t = v * ( 1 - s * ( 1 - f ) );
switch( i )
{
case 0:{r = v;g = t;b = p;break;}
case 1:{r = q;g = v;b = p;break;}
case 2:{r = p;g = v;b = t;break;}
case 3:{r = p;g = q;b = v;break;}
case 4:{r = t;g = p;b = v;break;}
case 5:{r = v;g = p;b = q;break;}
}
}