2013-04-03 4 views
0

У меня есть изображение в формате .bmp, я хочу добавить текст в середине рисунка! Я знаю все файлы seekp и seekg, но когда я использую ios :: app, текст идет до конца файла, и любая другая вещь, которую я использую, она отбрасывает весь текст! ios :: ... Я должен использовать?! Вот мой код:Работа с файлом C++

fstream file; 
file.open ("mehdi.bmp" , ios::out | ios::binary | ios::ate); 
char name[] = "Mehdi"; 
file.seekp (100); 
file.write ((char*)name , sizeof (name)); 
+2

Покажите нам, что вы сделали до сих пор ... –

+0

Помимо записи «случайных» (для файла «.bmp») данных в середине файла, используя открытый режим 'ios :: out' будет _overwrite_ файл, который вы пытаетесь открыть. –

+0

Итак, что мне делать, чтобы этого не случилось?! @JoachimPileborg – Mehdi

ответ

2

Самый простой, вероятно, будет читать весь текст в строку или вектор строк, а затем изменить строку/вектор, и записать его снова.

+0

Я не могу этого сделать, потому что это картина и ее слишком большая! – Mehdi

+2

@Mehdi Тогда ваше описание в вашем вопросе неверно, у вас нет файла с некоторым текстом в нем. Вы не можете просто написать некоторый случайный текст в середине файла со специальным форматом и ожидать, что он будет работать нормально. –

0

Насколько я понимаю ваш вопрос, кажется, что вы хотите создать изображение с рисунком текста, отображаемого где-то на картинке, а не с файлом, содержащим байты символов строки.

Если это так, вы должны использовать некоторые библиотеки чертежей, которые будут нарисовать текст где-нибудь на картинке с помощью шрифта и цвета.

Смежные вопросы