В ГТК-Шарп, проблема размер изображения: ГТК.изображения не удается преобразовать систему.чертеж.изображения
Привет, я хочу загрузить файл изображения с компьютера и изменить его размер.
Поэтому я кодировал так, но были проблемы.
image1 = FixedSize(image1, 300, 300); //compiler error reference: CS1502, CS1503 //cs1503: gtk.image cannot convert system.drawing.image //cs1502: There are wrong argument at method (am i right? sorry for my eng,,)
Я читал справочную справку, но ничего не понял и не знаю, как их решить.
Я использовал gtk# (а также c#) в течение месяца. Plz дайте мне решение легко для меня, чтобы понять
Вот мой код.
Спасибо и извините за мой английский:(
//when button clicked and select an image file, it load through resize function private Gtk.Image picturebuf = null; ... protected void OnBtnOpenClicked (object sender, EventArgs e) { FileChooserDialog fcd = new FileChooserDialog ("Open file", this, FileChooserAction.Open, "Cancel", ResponseType.Cancel,"Open", ResponseType.Accept); if (fcd.Run () == (int)ResponseType.Accept) { if(fcd.Filename.ToLower().EndsWith(".png")||fcd.Filename.ToLower().EndsWith(".bmp")||fcd.Filename.ToLower().EndsWith(".jpg")) { if (picturebuf != null && picturebuf.Pixbuf != null) { image1 = FixedSize(image1, 300, 300); image1.Pixbuf.Dispose(); } image1.Pixbuf = new Gdk.Pixbuf(fcd.Filename); } } fcd.Destroy(); } //it is resizing function static System.Drawing.Image FixedSize (System.Drawing.Image imgPhoto, int Width, int Height) { int sourceWidth = imgPhoto.Width; int sourceHeight = imgPhoto.Height; int sourceX = 0; int sourceY = 0; int destX = 0; int destY = 0; float nPercent = 0; float nPercentW = 0; float nPercentH = 0; nPercentW = ((float)Width / (float)sourceWidth); nPercentH = ((float)Height / (float)sourceHeight); if (nPercentH < nPercentW) { nPercent = nPercentH; destX = System.Convert.ToInt16((Width-(sourceWidth * nPercent))/2); } else { nPercent = nPercentW; destY = System.Convert.ToInt16((Height-(sourceHeight * nPercent))/2); } int destWidth = (int)(sourceWidth * nPercent); int destHeight = (int)(sourceHeight * nPercent); Bitmap bmPhoto = new Bitmap(Width, Height, PixelFormat.Format24bppRgb); bmPhoto.SetResolution(imgPhoto.HorizontalResolution, imgPhoto.VerticalResolution); Graphics grPhoto = Graphics.FromImage(bmPhoto); grPhoto.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; grPhoto.DrawImage(imgPhoto, new System.Drawing.Rectangle(destX, destY, destWidth, destHeight),new System.Drawing.Rectangle(sourceX, sourceY, sourceWidth, sourceHeight), GraphicsUnit.Pixel); grPhoto.Dispose (); return bmPhoto; }
Что я уже пробовал:
ну, я не знаю, что мне здесь писать
я попытался преобразовать image1(в FixSize func) в image. pixbuf и picturnbuf