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

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

meter元素顏色,可以使用CSS樣式來設置顏色

meter元素顏色,可以使用CSS樣式來設置顏色

meter元素可以用於表示已知範圍內的度量值,可以使用CSS樣式來設置顏色。具體來說,可以使用 <code>::-webkit-meter-optimum-value, ::-moz-meter-bar, ::-webkit-meter-bar</code> 偽元素來設置顏色。下面的例子中,我們將 <code>meter</code>。上述代碼中,當 <code>meter</code> 元素的值在80時,最優值(optimum)的顏色為綠色;當值落在0~80之間時,表格的顏色為灰色。可以按照自己的需求設置這些顏色值。…

視頻嵌入代碼,簡單的 video 嵌入代碼例子

視頻嵌入代碼,簡單的 video 嵌入代碼例子

視頻嵌入代碼,簡單的 video 嵌入代碼例子:- height:視頻高度。- controls:為 true 時,添加視頻控制條。- source:指定視頻文件路徑和類型,可支持多種類型。- Your browser does not support the video tag:如果用戶的瀏覽器不支持 HTML5  標記,則會顯示此消息。值得註意的是,這種視頻嵌入方式可能會因為用戶瀏覽器兼容性問題而無法播放,因此可能需要添加備用方案,如 Flash 等。同時,需要根據實際情況調整視頻的寬高比例、大小和文件大小等參數,以便更好地適配不同的設備和網絡環境。…

一個簡單的html結婚特效的代碼

一個簡單的html結婚特效的代碼

以下是一個簡單的html結婚特效的代碼:1. 使用html和css定義了一個結婚的基本樣式;2. 分別定義新娘和新郎,並使用background-image設置其背景圖;3. 定義一個心形圖案,並使用animation讓其跳動。…

學習html網頁制作模板代碼怎麼寫

學習html網頁制作模板代碼怎麼寫

HTML網頁制作模板代碼是用來定義網頁結構、內容和樣式的基礎代碼。以下是一個簡單的HTML網頁制作模板代碼的示例。通過這個模板代碼,你可以定義一個基本的網頁結構,以及樣式和導航等元素,讓你的網頁更加美觀和易於導航。通過這個適應式的模板代碼,你的網頁能夠在不同設備的屏幕上具有更好的用戶體驗,適應不同的屏幕大小。例如,在手機上,網頁會自動縮小並調整布局,使得網頁內容能夠適應較小的屏幕。當然,你需要自己編寫相應的css和js代碼,以實現適應式布局。…

html5菜鳥教程學習基本步驟

html5菜鳥教程學習基本步驟

以下是HTML5的菜鳥教程:1. 概述和基礎知識 了解HTML5的概念和新特性;熟悉HTML文件結構、標簽、元素和屬性;掌握HTML5的語義化標簽。2. 視頻和音頻 學習如何在網頁中嵌入視頻和音頻,使用video和audio標簽;熟悉媒體控制、字幕等相關屬性。3. 畫布和圖像 掌握使用canvas繪制2D圖形;熟悉圖像處理技術,如像素控制、濾鏡等。4. 表單和輸入 學習HTML5表單元素的新特性,如日期、時間、搜索等;熟悉表單數據驗證、自動填充等功能。…

doctype html的作用及代碼例子

doctype html的作用及代碼例子

在 HTML5 中,`<!doctype html>` 是一個非常簡單的聲明,因為已經沒有了其他HTML標準版本或者XML文檔類型定義的支持。此外,這個文檔類型聲明也非常簡短,易於理解和記憶。關於 `<!doctype html>` 的作用:1. 瀏覽器使用指定的文檔類型來解釋HTML文檔,確保瀏覽器正確地渲染頁面;2. 確定HTML文檔使用哪種HTML版本或者是XML文檔類型定義(DTD),以幫助有效解析頁面;3. 將文檔標識為符合 XHTML 規範還是非 XHTML 規範的HTML文檔。…