Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Image


Автор: 4ybaka 22.1.2008, 01:20
Подскажите, как можно изменить разрешение картинки (ужать)? Кажется, что где-то в Encoder.Transformation, но пока не нашел...

Автор: FREEDEV 22.1.2008, 01:54
можно создать новый Bitmap необходимого размера, дальше Graphics.FromImage для получение объекта типа Graphics и для него вызовем DrawImage для отрисовки на битмапе

Автор: 4ybaka 22.1.2008, 13:21
FREEDEV, попробовал, но что-то не получается. делал так:
Код

Image image = Image.FromFile(path);
Bitmap bitmap = new Bitmap(1024, 768);
Graphics.FromImage(image).DrawImage(bitmap,new Point(0,0));
bitmap.Save("after.bmp");

так же вместо последней строки пытался так:
Код

ImageCodecInfo codec = GetEncoderInfo("image/jpeg");
Encoder encoder = Encoder.Quality;
EncoderParameter par = new EncoderParameter(encoder,70L);
EncoderParameters pars;
pars = new EncoderParameters(1);
pars.Param[0] = par;

bitmap.Save("after.jpg", codec, pars);

но в обоих случаях получал картинку одного цвета(белого либо черного соответственно). В чем может быть проблема?

Автор: FREEDEV 22.1.2008, 16:03
используй этот вариант:

Код

public void DrawImage (
    Image image,
    Rectangle rect
)



Код

Parameters
image
Image to draw. 

rect
Rectangle structure that specifies the location and size of the drawn image. 



Код

Graphics.FromImage(image).DrawImage(bitmap, new Rectangle(0, 0,1024, 768));


у тебя же просто указывается положение откуда рисовать new Point(0,0)

Автор: 4ybaka 22.1.2008, 16:33
все,работает.перепутал местами где и кого рисовать)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)