Я пытаюсь работать над простым проектом шифрования изображений, и у меня есть несколько вопросов, которые я хочу задать.C++ чтение и редактирование файла jpg с использованием ifstream
Должен ли я хранить каждый байт данных из
ifstream
в персонажа, как я сделал в моем коде?Каждый байт напечатан - это странный символ (это правильно), но почему добавление 10 (
int
) к этому всегда приводит к числу при печати?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; }
Выход:
Original: å
Result after adding: -112
Original: Æ
Result after adding: -100
Original:
Result after adding: 12
Как вы можете видеть, добавление 10 всегда приводит к ряду. Как я правильно увеличиваю эти значения, чтобы впоследствии изменить их?
Благодарим за помощь.
Для уточнения, вы фактически ничего не делаете с фактическими данными изображения JPEG? Просто случается так, что ваш входной файл является файлом изображения JPEG? –