Цитата:
Сообщение от
maldini
У класса Image хоть он и наследник от BinData есть какие то глюки с загрузкой файла получением base64encode. Вот так работать будет
X++:
binData = new BinData();
binData.loadFile(@"d:\2.PNG");
image = new Image();
image.setData(binData.getData());
image.resize(96,96,InterpolationMode::InterpolationModeHighQuality);
image.saveImage(@"d:\2_1.png");
Спасибо, но это тоже не сработало, сохраняемый размер файла остался таким же.
X++:
AxImage = new Image();
w=w*0.6;
h=h*0.6;
imgnew=System.Drawing.Image::FromFile(@"Y:\1\12345.png");
h= imgnew.get_Height();
w= imgnew.get_Width();
h2=h*0.6;
w2=w*0.6;
bitmap = new System.Drawing.Bitmap(imgnew, w2,h2);
sd = System.Drawing.Graphics::FromImage(bitmap);
bitmap.Save(@"Y:\1\12345.png");
Это сработало.
Еще вопрос, как можно задать(в X++) формат сжатия для JPG, с синтаксисом написания проблемы. В С# вроде все понятно, но на X++ не догоняю, как задать последний параметр
encdp.
X++:
System.Drawing.Imaging.Encoder enc;
System.Drawing.Imaging.EncoderParameters[] encdpall;
System.Drawing.Imaging.EncoderParameters encdp;
System.Drawing.Imaging.EncoderParameter encpv;
System.Drawing.Imaging.ImageCodecInfo imgci;
System.Drawing.Imaging.ImageCodecInfo[] imgciall;
..
imgciall= System.Drawing.Imaging.ImageCodecInfo::GetImageEncoders();
imgci=imgciall.GetValue(1);// JPG
enc= new System.Drawing.Imaging.Encoder(imgci.get_Clsid()); //?????
encpv= new System.Drawing.Imaging.EncoderParameter(enc,1);//?????
encpvall.SetValue(encpv,1);//?????
encdp.set_Param(encpvall);//?????
bitmap.Save(@"Y:\1\12345.jpg",imgci,encdp);
как задать Quality для encdp ?