2013-06-05 3 views
1

Я написал фрагмент кода, чтобы открыть файл изображения (JPEG), добавив в него текст и сохранил его в другом файле.Сохранение файла изображения после добавления текста

Это выглядит следующим образом:

Image sourceImage = Image.FromFile(fileName); 
Graphics grp = Graphics.FromImage(sourceImage); 
grp.DrawString(...); 
Bitmap bmp = new Bitmap(sourceImage); 
bmp.Save(newFileName, ImageFormat.Jpeg); 

Это прекрасно работает, и файл был успешно сохранен с текстом добавленным к нему.

Однако исходный файл составляет около 1,5 МБ, а новый файл составляет около 480 КБ. Когда я просматриваю детали каждого файла, я вижу, что размеры аналогичны, но исходный файл имеет разрешение 180 точек на дюйм, а новый - 96. Исходное изображение также имеет представление цвета (sRGB) и сжатые бит/пиксель (4), в то время как новое изображение не содержит этих деталей.

Может ли это быть причиной различий в размере файла?

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

Большое спасибо,

Elad

+0

Я не думаю, что исходное изображение является файлом JPEG. Вы можете попробовать открыть его с помощью блокнота и посмотреть, есть ли строка JPEG в самом начале всего текстового содержимого. Я думаю, это BMP. –

ответ

0

Вы можете установить уровень сжатия JPEG при сохранении изображения. См. Quality of a saved JPG in C#.

Однако, это seems to be impossible, чтобы узнать, какие настройки качества сохранены в формате JPEG, поэтому я не думаю, что вы можете сохранить свой собственный JPEG с тем же уровнем сжатия, что и входной JPEG.

+0

Спасибо, Крис, я проверю это. –