C++ Image Library + UCHAR* zu char*

hallo

ich suche eine library für c/c++ die folgende funktionen unterstützt:
- screencapture
- jpeg format
- difference calculation (damit meine ich, dass das aktuelle bild mit dem davor verglichen wird und nur die unterschiede aufgezeichnet werden)

kennt jemand eine relativ einfach zu bedienende? ich habe bei google un sourceforge geguckt aber dort ist bei zb cima nicht angegeben ob screencapture oder difference calc unterstützt werden.

und ich würde gerne wissen wie man uchar * zu char * konvertieren kann ;)

mfg felikz
 
Original von NULL!=NULL
hallo

ich suche eine library für c/c++ die folgende funktionen unterstützt:
- screencapture
- jpeg format
- difference calculation (damit meine ich, dass das aktuelle bild mit dem davor verglichen wird und nur die unterschiede aufgezeichnet werden)
ImageMagick kann das und ist auch relativ einfach zu bedienen.
 
UCHAR ist ein struct char nicht; Außerdem wird UCHAR für Unicode eingesetzt, char nicht. -> wenn schon konvertieren dann UCHAR in wchar oder einen äquivalente Unicode Datentyp :) -> Oder du speicherst UCHAR in zwei unsigned char; d.h. higher Bereich des UCHAR in ein unsigned char, lower Bereich in das andere unsigned char :)

low und hight Bereich bekommst du mit den folgenden Methoden: low() bzw. high()
 
zitat microsoft platform sdk:
UCHAR Unsigned CHAR.
This type is declared in WinDef.h as follows:
Code:
typedef unsigned char UCHAR;

will heißen, char hat nen wertebereich von 0 - 254, uchar von -128 - 127. die konversion sollte also "per hand" einfach dadurch gemacht werden können, dass du von einem (signed) char 128 abziehst bzw. in der anderen richtung halt 128 dazuzählst:
Code:
UCHAR uCh = 'x';
char sCh = uCh+128;
obs dafuer auch funktionen gibt, weiß ich net..
geb allerdings keine garantie drauf, das is nur das was ich aufgrund der definitionen der datentypen folgere =)
versteh allerdings sowieso net, woher du ueberhaupt einen uchar bekommst, es gibt doch so gut wie keine funktion die sowas unterstuetzt..

mfg

edit: hab grad nommal gegooglet(?), gibt anscheinend mehrere definitionen von UCHAR, wär net schlecht wenn wir wuessten auf welche du dich beziehst..
 
will heißen, char hat nen wertebereich von 0 - 254, uchar von -128 - 127. die konversion sollte also "per hand" einfach dadurch gemacht werden können, dass du von einem (signed) char 128 abziehst bzw. in der anderen richtung halt 128 dazuzählst:

Du meinst wohl, dass char von -128 bis 127 geht und uchar (is ja unsigned, d.h. nur positiv) von 0 bis 254.
 
ich benütige den uchar für eine md5 funktion...
einen link zu der site wo ich die funktion her hab kann ich euch heut abend sagen
 
Original von heinzelJacKy
zitat microsoft platform sdk:
UCHAR Unsigned CHAR.
This type is declared in WinDef.h as follows:
Code:
typedef unsigned char UCHAR;

will heißen, char hat nen wertebereich von 0 - 254, uchar von -128 - 127. die konversion sollte also "per hand" einfach dadurch gemacht werden können, dass du von einem (signed) char 128 abziehst bzw. in der anderen richtung halt 128 dazuzählst:
Code:
UCHAR uCh = 'x';
char sCh = uCh+128;

Ich gehe mal von "typedef unsigned char uchar" aus:
Was du da schreibst ist nicht wirklich richtig. Im Speicher sieht ein "char c = -1" genauso aus wie "uchar c = 0xFF". Zur Umwandlung müsste eigentlich ein Typecast reichen. Poste mal bitte den Teil des Codes, in dem der Fehler auftritt und die genaue Fehlermeldung.
Wobei du vielleicht sagen solltest, welche MD5-Implementation du verwendest. Also bei der aus dem RFC funktioniert bei mir z.B. folgender Code:
Code:
char *str = "test";
unsigned char digest[16]; //hier macht es keinen Sinn, nicht uchar zu verwenden
MD5_CTX ctx;
MD5Init(&ctx);
MD5Update(&ctx,(unsigned char*)str,strlen(str));
MD5Final(digest,&ctx);
Bei Deinem(heinzelJacky) Beispiel mit dem 'x' wäre es außerdem egal, da es bei signed/unsigned nur auf die Interpretation des höchstwertigsten Bits ankommt, welches bei 'x' sowieso nicht gesetzt ist. Man kann bei den meisten Compiler auch solche Sachen schreiben wie "unsigned char c=-1" und es funktioniert, da bei einem Byte die Darstellung von -1 und 0xFF genau gleich ist.
 
@rukh

wo steht denn bei ImageMagick was von difference calculation? und wo steht was von screencapture? ich hab mir die komplette doku runtergeladen un durchgesucht aber nix gefunden.
 
Zurück
Oben