Ich versuche, an einem einfachen Bildverschlüsselungsprojekt zu arbeiten, und ich habe ein paar Fragen, die ich stellen möchte.C++ lesen und bearbeiten jpg-Datei mit ifstream
Soll ich jedes Byte von Daten von
ifstream
in ein Zeichen, wie ich in meinem Code tat?Jedes gedruckte Byte ist ein seltsames Symbol (was korrekt ist), aber warum führt das Hinzufügen von 10 (ein
int
) dazu immer zu einer Zahl beim Drucken?int main() { vector <char> data; // Stores each byte from image.jpg ifstream fileIn("image.jpg", ios::binary); int i = 0; // Used for accessing each item in data vector while (fileIn){ //Add each character from the image file into the vector data.push_back(fileIn.get()); cout << "Original: " << data[i] << endl; // Print each character from image.jgp cout << "Result after adding: " << data[i] + 10 << endl; // This line is where I need help with i++; system("pause"); } fileIn.close(); system("pause"); return 0; }
Ausgang:
Original: å
Result after adding: -112
Original: Æ
Result after adding: -100
Original:
Result after adding: 12
Wie Sie sehen können, 10 Hinzufügen führt immer zu einer Zahl. Wie inkrementiere ich diese Werte richtig, damit ich sie später wieder ändern kann?
Vielen Dank für jede Hilfe.
Nur zur Klarstellung, Sie machen eigentlich nichts mit den eigentlichen JPEG-Bilddaten? Es ist einfach so, dass Ihre Eingabedatei eine JPEG-Bilddatei ist? –