C# 生成指定圖片的縮略圖

在C#中,生成指定圖片的縮略圖通常涉及加載原始圖片,創建一個新的較小尺寸的位圖(Bitmap),然後將原始圖片繪制到這個新的位圖上。以下是一個簡單的步驟說明和代碼示例,用於在C#中生成圖片的縮略圖。

步驟說明

C# 生成指定圖片的縮略圖

1. 加載原始圖片:使用`Image.FromFile`或類似方法加載要生成縮略圖的圖片。

2. 創建新的位圖:根據所需的縮略圖尺寸,創建一個新的`Bitmap`對象。

3. 繪制縮略圖:使用`Graphics.DrawImage`方法將原始圖片繪制到新的位圖上,可能需要進行縮放以適應新的尺寸。

4. 保存縮略圖:使用`Bitmap.Save`方法將新的位圖保存為文件。

5. 清理資源:釋放不再需要的資源,如`Image`和`Bitmap`對象。

代碼示例

以下是一個完整的C#代碼示例,用於生成指定圖片的縮略圖:

csharp

using System;
using System.Drawing;
using System.Drawing.Imaging;
public class ThumbnailGenerator
{
    public static void GenerateThumbnail(string originalImagePath, string thumbnailPath, int thumbnailWidth, int thumbnailHeight)
    {
        try
        {
            // 加載原始圖片
            using (Image originalImage = Image.FromFile(originalImagePath))
            {
                // 計算縮略圖的縮放比例
                decimal origWidth = originalImage.Width;
                decimal origHeight = originalImage.Height;
                decimal ratioX = thumbnailWidth / origWidth;
                decimal ratioY = thumbnailHeight / origHeight;
                decimal ratio = Math.Min(ratioX, ratioY);
                // 計算縮略圖的實際尺寸
                int thumbWidth = (int)(origWidth * ratio);
                int thumbHeight = (int)(origHeight * ratio);
                // 創建一個新的位圖對象
                using (Bitmap thumbBitmap = new Bitmap(thumbWidth, thumbHeight))
                {
                    // 創建一個Graphics對象用於繪制
                    using (Graphics thumbGraphic = Graphics.FromImage(thumbBitmap))
                    {
                        // 設置高質量插值法以平滑圖像
                        thumbGraphic.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
                        // 繪制縮略圖
                        thumbGraphic.DrawImage(originalImage, 0, 0, thumbWidth, thumbHeight);
                        // 保存縮略圖
                        thumbBitmap.Save(thumbnailPath, ImageFormat.Jpeg);
                    }
                }
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine("Error generating thumbnail: " + ex.Message);
        }
    }
}
// 使用示例
class Program
{
    static void Main(string[] args)
    {
        string originalImagePath = "path_to_your_original_image.jpg";
        string thumbnailPath = "path_to_save_your_thumbnail.jpg";
        int thumbnailWidth = 200;
        int thumbnailHeight = 200;
        ThumbnailGenerator.GenerateThumbnail(originalImagePath, thumbnailPath, thumbnailWidth, thumbnailHeight);
    }
}

代碼解釋

* `GenerateThumbnail`方法接受原始圖片的路徑、縮略圖的保存路徑以及縮略圖的寬度和高度作為參數。

* 使用`Image.FromFile`加載原始圖片,並將其包裝在一個`using`語句中以確保在完成後釋放資源。

* 計算縮略圖的縮放比例和實際尺寸。

* 創建一個新的`Bitmap`對象,其大小等於縮略圖的尺寸,並同樣使用`using`語句來確保資源被釋放。

* 創建一個`Graphics`對象,用於在`Bitmap`上繪制縮略圖。

* 設置插值模式為`HighQualityBicubic`以改善圖像質量。

* 使用`Graphics.DrawImage`方法將原始圖片繪制到新的位圖上,縮放以適應新的尺寸。

* 使用`Bitmap.Save`方法將縮略圖保存為文件。

* 如果在過程中發生任何異常,將捕獲並打印錯誤消息。

* 在`Main`方法中,提供了一個使用示例,調用`GenerateThumbnail`方法並傳入相應的參數。

分享給朋友:

“C# 生成指定圖片的縮略圖” 的相關文章

mark點怎麼設置及設置例子

mark點怎麼設置及設置例子

mark 元素用於標記或高亮文本,非常適合用於文本搜索和結果導航。要在文本中使用 mark 元素,只需要將需要高亮的文本放在 mark 元素內即可。通常情況下,瀏覽器默認為高亮文本設置為黃色。 .highlight {    background-color: lightblue…

HTML 和 CSS 實現網頁導航欄和下拉菜單

HTML 和 CSS 實現網頁導航欄和下拉菜單

以下是一組基於 HTML 和 CSS 實現網頁導航欄和下拉菜單的完整代碼:HTML 代碼:CSS 代碼。該代碼實現了一個簡單的網頁導航欄和下拉菜單,其中 `nav` 表示導航欄,`ul` 表示菜單,`li` 表示菜單項,`a` 表示鏈接。通過設置 CSS 樣式,將菜單項設置為了懸停時出現下拉菜單,同…

一個簡單的html大海日出特效的代碼

一個簡單的html大海日出特效的代碼

以下是一個簡單的html大海日出特效的代碼:1. 使用html和css定義了一個大海和太陽的基本樣式;2. 使用animation讓太陽從初始位置向上升起,並且設置好其動畫屬性;3. 設置大海背景漸變和水面的動畫效果。…

星空特效的HTML代碼示例

星空特效的HTML代碼示例

以下是一個星空特效的HTML代碼示例:這個代碼會在頁面背景中生成100個閃爍的星星,使得整個頁面看起來像是夜空中的星空。可以在瀏覽器中運行查看效果。這些代碼可以在瀏覽器中運行並產生相應的星空特效。…

HTML標簽屬性大全及代碼例子

HTML標簽屬性大全及代碼例子

在HTML中,屬性是在標簽中使用的特殊命令,它們提供了額外的信息以更好地描述標簽的內容和行為。屬性名表示該屬性的名稱,而屬性值表示該屬性要設置的值。HTML標簽屬性有很多種類和用途,它們可以影響標簽的內容、顏色、尺寸、超鏈接、樣式、表單等方面。一些常見的HTML標簽屬性包括:class、id、sty…

html制作網頁教程技能及代碼例子

html制作網頁教程技能及代碼例子

而HTML作為網頁的標準語言,學習HTML制作網頁的基本技能則是入門網頁制作的必修課程。在這篇文章中,我們將為大家講解一份詳細的HTML制作網頁教程,幫助初學者快速掌握網頁制作技巧,實現自己的網站夢想。以下是一個基礎的HTML網頁制作教程,步驟如下:1. 創建網頁文件 首先,打開一個文本編輯器,如W…