'loha Folks,
ich wollte mich erkundigen, wie man irgendwelche Daten zu einem JPEG Bild zusammenfügen kann. Ich bekomme bisher von einem Gerät Bitmaps, welche Pixel für Pixel dargestellt werden, das Ziel ist aber, auf dem Gerät welches das Bild aufnimmt, die Daten bereits in ein komprimiertes JPEG zu wandeln um weniger Daten übertragen zu müssen.
Die folgenden Informationen (Header) bekomme ich vom Gerät:
Code:
// return header
AnswerData[0]=TRANSFER_DATA+1; // 1: Running number for order of packages
AnswerData[1]=0x03; // 2: image is sent over CAN
AnswerData[2]=0b00000001; // 3: Image is not compressed and has 50% x 50% resolution
AnswerData[3]=0x00; // 4: compression parameters
AnswerData[4]=0x00; // 5: Image width: 176 = 0xB0
AnswerData[5]=4; // 6: Image width: 176 = 0xB0
AnswerData[6]=0x00; // 7: Image height: 144 = 0x90
AddCheckSumToAnswerData(AnswerData);
ECANSendMessage(Identifier,AnswerData,8,ECAN_TX_XTD_FRAME);
AnswerData[0]=TRANSFER_DATA+2; // 7: Running number for order of packages
AnswerData[1]=8; // 8: Image height: 144 = 0x90
AnswerData[2]=0x00; // 9: number of pixels
AnswerData[3]=0x00; // 10:number of pixels
AnswerData[4]=0x00; // 11:number of pixels
AnswerData[5]=32; // 12:number of pixels: totaL 0x6300 = 25344 (35=0x23)
AnswerData[6]=ErrorCode; // 14: error code
ECANSendMessage(Identifier,AnswerData,8,ECAN_TX_XTD_FRAME);
AddCheckSumToAnswerData(AnswerData);
Beim Bitmap sieht die Sache genau gleich aus, nur dass dort klar ist, dass jedes ankommende Byte ein Pixel dargestellt hat. Wie ich nun ein bereits komprimiertes JPEG Bild darstelle ist mir unklar. Klar ist, dass ich pro ankommendem Paket jeweils 8 Byte an daten erhalte.
Da ich etwas unter Zeitdruck stehe, kann ich nicht allzuviel Zeit investieren um herauszufinden wie man macht was ich will.
Grüsse
hirnstroem