Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Общие вопросы по .NET и C# > JPEG катринка... 10на10 пикс. нады 8на8 |
Автор: Roman_ 31.5.2006, 14:53 |
вот пример.... Bitmap b = Bitmap.FromFile("c:\\v.jpg") as Bitmap; int sourceWidth = b.Width; int sourceHeight = b.Height; int sourceX = 0; int sourceY = 0; int destX = 0; int destY = 0; int destWidth = (int)(sourceWidth*0.9); int destHeight = (int)(sourceHeight*0.9); Bitmap bb = new Bitmap(destWidth, destHeight,PixelFormat.Format24bppRgb); bb.SetResolution(b.HorizontalResolution, b.VerticalResolution); Graphics grPhoto = Graphics.FromImage(bb); grPhoto.InterpolationMode = InterpolationMode.HighQualityBicubic; grPhoto.DrawImage(b, new Rectangle(destX,destY,destWidth,destHeight), new Rectangle(sourceX,sourceY,sourceWidth,sourceHeight), GraphicsUnit.Pixel); grPhoto.Dispose(); bb.Save("c:\\vv.jpg"); но почему то при сохранении файла размер в 5 раз больше... как решить проблему... |
Автор: Balu 31.5.2006, 19:26 |
А если вот так попробовать (последняя строчка) bb.Save("c:\\vv.jpg", System.Drawing.Imaging.ImageFormat.Jpeg); |
Автор: mr.DUDA 31.5.2006, 20:34 | ||
При сохранении нужно явно указать кодек и его параметры, в данном случае параметр - качество картинки (его нужно выставить в пределах 1...100, среднее качество - 50..65). Вот пример с другого форума:
|
Автор: Roman_ 1.6.2006, 08:36 |
все работает.. всем спасибо... но еще попутный вопросик... если картинка 90 метров то ошибка.... как можно обойти это???? |
Автор: mr.DUDA 1.6.2006, 09:19 |
Roman_, памяти добавить ![]() |
Автор: Roman_ 1.6.2006, 11:14 | ||
а если серьездно! |
Автор: mr.DUDA 1.6.2006, 12:31 |
Если валится OutOfMemoryException, то другого решения нет. Либо юзать компоненты сторонних разработчиков, такие как FreeImage. |