webForumDet fria alternativet

Image resizeing

5 svar · 341 visningar · startad av asmodie

asmodieMedlem sedan jan. 2004501 inlägg
#1

Är det någon som har några bra länkar eller script på hur man göra snygga image resizing med C#?

Jag vill ha så hög bildkvalitet som möjligt.

tohaMedlem sedan dec. 1999707 inlägg
#2

Här är en gammal kod som jag har använt. CFile är ett egendefinierat filobjekt. Den här koden skapar en thumbnail med en viss storlek med vit bakgrund och fyller bilden i rektangeln. Hoppas du kan använda den på något sätt. :)

		/// <summary>
		/// Creates a thumbnail for a given CFile object.
		/// </summary>
		/// <param name="oFile">The CFile object to create thumbnail for.</param>
		/// <param name="strDestPath">The destination path, including file name, where to put it.</param>
		public void GenerateThumbNail(CFile oFile, string strDestPath)
		{
			Bitmap oImg;
			ImageFormat oFormat;
			if (oFile.IsAnImageFile())
			{
				CImageFile oImageFile =	(CImageFile) oFile;
				oImg =				oImageFile.oBitmap;
				oFormat =			oImageFile.ImageFormat;
			}
			else
			{
				oImg =				CShell.GetFileIcon(oFile.strPath);
				oFormat =			ImageFormat.Gif;
			}
			Image oThumbNail =				new Bitmap(oImg, this.nThumbnailWidth, this.nThumbnailHeight);
			Graphics oGraphic =				Graphics.FromImage(oThumbNail);
			oGraphic.CompositingQuality =	CompositingQuality.HighQuality ;
			oGraphic.SmoothingMode =		SmoothingMode.HighQuality ;
			oGraphic.InterpolationMode =	InterpolationMode.HighQualityBicubic ;
			oGraphic.FillRectangle(new SolidBrush(Color.White), -2, -2, oThumbNail.Size.Width+2, oThumbNail.Size.Height+2);
			
			Size newSize =	ImageVariantSetting.GetCalculatedSize(oImg.Size, this.nThumbnailWidth, this.nThumbnailHeight);
			int x =			(newSize.Width < oThumbNail.Size.Width) ? ((oThumbNail.Size.Width - newSize.Width) / 2) : 0;
			int y =			(newSize.Height < oThumbNail.Size.Height) ? ((oThumbNail.Size.Height - newSize.Height) / 2) : 0;

			Rectangle oRectangle =			new Rectangle(x, y, newSize.Width, newSize.Height);
			oGraphic.DrawImage(oImg, oRectangle);
			oThumbNail.Save(strDestPath, oFormat);
		}
asmodieMedlem sedan jan. 2004501 inlägg
#3

Har du något exempel på hur bilderna blir?

renholmMedlem sedan apr. 20012 266 inlägg
#4

Finns en eller flera trådar i forumet som tar upp frågan, finns även fungerande funktioner i dessa.

tohaMedlem sedan dec. 1999707 inlägg
#5

Typ såhär. 128x128 pixels.

dscn0297.jpg
fredrikMedlem sedan dec. 19991 072 inlägg
#6

Här är ytterligare ett exempel på en lite större mer detaljerad bild:
Bild
(Se till att maximera fönstret / visa bilden i fullstorlek så att inte din webbläsare trycker ihop den för att den ska få plats i fönstret)

129 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)