使用 C# 語言壓縮圖片並調整大小

閱讀時間約 2 分鐘

在開發應用程式時,經常會遇到需要調整圖片大小以節省空間或加快加載速度的情況。本教學將介紹如何使用 C# 語言來壓縮圖片並調整其大小,以便在應用程式中使用。


設定環境

確保您的開發環境中已安裝 Visual Studio 或其他 C# 開發工具。本教學將使用 Visual Studio 作為範例環境。

建立新的 C# 專案

在 Visual Studio 中建立一個新的 C# 控制台應用程式專案。

引用 System.Drawing 命名空間

在程式碼中引用 System.Drawing 命名空間,以便使用圖片處理相關的類別和方法。

using System.Drawing;
using System.Drawing.Imaging;

讀取原始圖片並設定新的大小

使用 Bitmap 類別讀取原始圖片,並根據需求設定新的寬度和高度。

Bitmap originalImage = new Bitmap("original.jpg");

int newWidth = 300;
int newHeight = (int)(originalImage.Height * ((float)newWidth / originalImage.Width));

建立新的 Bitmap 並調整大小

建立一個新的 Bitmap 物件作為調整大小後的圖片暫存,然後使用 Graphics 類別的 DrawImage 方法將原始圖片繪製到新的 Bitmap 中,同時調整大小。

Bitmap resizedImage = new Bitmap(newWidth, newHeight);

using (Graphics g = Graphics.FromImage(resizedImage))
{
g.DrawImage(originalImage, 0, 0, newWidth, newHeight);
}

儲存調整大小後的圖片

最後,使用 Save 方法將調整大小後的圖片儲存為新的檔案。

resizedImage.Save("resized.jpg", ImageFormat.Jpeg);

結語

通過這些步驟,您可以使用 C# 語言輕鬆地壓縮圖片並調整其大小。這對於開發需要處理圖片的應用程式非常有用,例如圖片上傳、圖片庫管理等。希望本教學對您有所幫助!

64會員
117內容數
這裡將以輕鬆風格,深入探討程式設計的基礎和高級概念。從程式語言到演算法,我們將以易懂的方式解釋每個主題,讓你輕鬆掌握。無論你是初學者或有經驗者,都能在這裡找到適合你的內容。無論你的目標是成為專業開發者還是擴展知識,我們都會陪伴你一同成長!
留言0
查看全部
發表第一個留言支持創作者!
程式輕鬆玩 的其他內容
在開發 C# WinForms 應用程式時,有時我們想要以非侵入性的方式向使用者顯示訊息或通知,而不必打斷他們的工作流程。一種常見的方式是利用 Windows 的 NotifyIcon 類別,在右下角的系統通知區域顯示小圖示,並且在使用者單擊時顯示訊息氣球提示。
在這個教學中,我們將使用 C# 和 WinForms 來建立一個基本的行事曆應用。我們將使用 MonthCalendar 控制元件,這是一個方便的工具,可用於顯示和選擇日期。這篇文章介紹瞭如何建立基本的行事曆應用,以及如何設定事件處理和添加自定義功能。
在C#的視窗應用程式中,右鍵選單(Context Menu)是一個方便的使用者介面元素。當中的項目可以包含各種功能,而有時我們可能需要在使用者點擊右鍵選單中的某個項目時,取得該項目的值。以下是一個簡單的教學,教你如何在C#中實現這個功能。
當我們需要在C#中批次更改資料夾中的檔案名稱時,我們可以使用一個自定義的C#類別。這個類別會讓我們指定資料夾路徑和新的檔名,然後它會遍歷資料夾中的檔案,為每個檔案生成一個新的名稱,新名稱由指定的檔名加上一個序號組成。
當您需要使用 C# 程式語言來遍歷指定資料夾並刪除指定副檔名的檔案時,這篇教學將引導您完成這個任務。這個程式將使用遞迴方法,以確保不僅刪除指定資料夾中的檔案,還將刪除其所有子資料夾中符合條件的檔案。
在 C# 的視窗應用程式開發中,有時候我們需要在子視窗中取得父視窗的參考,以實現不同視窗之間的資訊交換或操作。這篇教學將會示範如何使用 Owner 屬性來在子視窗中取得父視窗的參考,以及如何進行相關操作。
在開發 C# WinForms 應用程式時,有時我們想要以非侵入性的方式向使用者顯示訊息或通知,而不必打斷他們的工作流程。一種常見的方式是利用 Windows 的 NotifyIcon 類別,在右下角的系統通知區域顯示小圖示,並且在使用者單擊時顯示訊息氣球提示。
在這個教學中,我們將使用 C# 和 WinForms 來建立一個基本的行事曆應用。我們將使用 MonthCalendar 控制元件,這是一個方便的工具,可用於顯示和選擇日期。這篇文章介紹瞭如何建立基本的行事曆應用,以及如何設定事件處理和添加自定義功能。
在C#的視窗應用程式中,右鍵選單(Context Menu)是一個方便的使用者介面元素。當中的項目可以包含各種功能,而有時我們可能需要在使用者點擊右鍵選單中的某個項目時,取得該項目的值。以下是一個簡單的教學,教你如何在C#中實現這個功能。
當我們需要在C#中批次更改資料夾中的檔案名稱時,我們可以使用一個自定義的C#類別。這個類別會讓我們指定資料夾路徑和新的檔名,然後它會遍歷資料夾中的檔案,為每個檔案生成一個新的名稱,新名稱由指定的檔名加上一個序號組成。
當您需要使用 C# 程式語言來遍歷指定資料夾並刪除指定副檔名的檔案時,這篇教學將引導您完成這個任務。這個程式將使用遞迴方法,以確保不僅刪除指定資料夾中的檔案,還將刪除其所有子資料夾中符合條件的檔案。
在 C# 的視窗應用程式開發中,有時候我們需要在子視窗中取得父視窗的參考,以實現不同視窗之間的資訊交換或操作。這篇教學將會示範如何使用 Owner 屬性來在子視窗中取得父視窗的參考,以及如何進行相關操作。
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
隨著自己在澳洲生活了一年多,逐漸能夠使用英文作為我日常的溝通工具後,今年,我再度給了自己一個挑戰,那就是學習一個新的語言! 這篇文章分享了我學習法文的動機、平臺師資狀況、課程進行狀況、學伴計畫以及個人心得。
Thumbnail
如果你曾經嘗試學習多種語言, 你會發現每種語言都有其獨特之處。 在我26至28歲期間, 我系統地學習了語言學知識, 以此來輔助我學習俄語、法語、德語、義大利語和西班牙語。 這個過程中, 我發現了大語言模型(LLMs)在語言學習上的巨大潛力。
Thumbnail
Ç在葡語被稱為「cedilha」。除了葡語之外,來看看還有哪些語言有這個符號吧!
Thumbnail
年報(Annual Reports)對於公開上市公司的財務狀況提供了重要的資訊。 年報不僅是公開上市公司每年必須發布的法定文件,更是投資者、股東和分析師評估一家公司財務狀況和未來發展潛力的重要來源。 年報包括了獲利表現、資產狀況、業務策略和風險因素等,這些都會對公司的股價產生直接或間接的影響。
Thumbnail
在某間前外商公司的最終面試前,知道面試官總經理是新加坡人,但不知道為何明明在台灣面試她卻一開口就說英語。
JCinfo.net 我現在聯絡最久的日本人就是在上面找的喔~ 建議除了打 自我介紹 之外,也可以打想進步到什麼程度、 為什麼學日文、想找怎麼樣的語伴等等。 💥然後 先不要 留賴的資訊,等有人用郵件聯絡你之後, 用郵件一來一往聊一下,觀察一下對方學中文的意願✨ 再來考慮要不要交換賴! ✅優點:因為
Thumbnail
在資料分析領域中,購物籃分析又稱關聯分析,從大量的交易資料中,探勘出在資料間具有相關性的隱藏規則與商業知識。
Thumbnail
  雖然Dart 語言本身支援跨平台的編譯方式,但在實務開發時還是不免需要使用外部非Dart語言所提供的函式庫進行功能開發且由於C 語言是最為廣泛且通用的程式語言,因此Dart語言也有提供支援與C語言函式庫互通性的方式;本篇主要是以MSVC作為C的編譯器來實作說明如何引用C語言會遇到的作法。
Thumbnail
#Duolingo 使用小心得 因為聽了天下雜誌的介紹,第一次知道這個App,標榜著「免費」、「短時間」、「多國語言」、「遊戲」等特色,我開始試著利用Duolingo來稍微維持一點英文。 #特色 個人建議,可以選用「邀請好友」的方式,讓自己體驗下Plus的會員使用,門檻其實要也不高。 2、簡體模式
Thumbnail
因為身為中國移民的家庭——在這裡先不要評論我這個用詞的正當性——家人的祖輩們又來自各方,我的語言使用其實很不道地,我聽得懂97%的台語,唯有那3%巷仔內的用語,或是各地的方言聽不太懂,通常我能聽得懂全台語的演講。
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
隨著自己在澳洲生活了一年多,逐漸能夠使用英文作為我日常的溝通工具後,今年,我再度給了自己一個挑戰,那就是學習一個新的語言! 這篇文章分享了我學習法文的動機、平臺師資狀況、課程進行狀況、學伴計畫以及個人心得。
Thumbnail
如果你曾經嘗試學習多種語言, 你會發現每種語言都有其獨特之處。 在我26至28歲期間, 我系統地學習了語言學知識, 以此來輔助我學習俄語、法語、德語、義大利語和西班牙語。 這個過程中, 我發現了大語言模型(LLMs)在語言學習上的巨大潛力。
Thumbnail
Ç在葡語被稱為「cedilha」。除了葡語之外,來看看還有哪些語言有這個符號吧!
Thumbnail
年報(Annual Reports)對於公開上市公司的財務狀況提供了重要的資訊。 年報不僅是公開上市公司每年必須發布的法定文件,更是投資者、股東和分析師評估一家公司財務狀況和未來發展潛力的重要來源。 年報包括了獲利表現、資產狀況、業務策略和風險因素等,這些都會對公司的股價產生直接或間接的影響。
Thumbnail
在某間前外商公司的最終面試前,知道面試官總經理是新加坡人,但不知道為何明明在台灣面試她卻一開口就說英語。
JCinfo.net 我現在聯絡最久的日本人就是在上面找的喔~ 建議除了打 自我介紹 之外,也可以打想進步到什麼程度、 為什麼學日文、想找怎麼樣的語伴等等。 💥然後 先不要 留賴的資訊,等有人用郵件聯絡你之後, 用郵件一來一往聊一下,觀察一下對方學中文的意願✨ 再來考慮要不要交換賴! ✅優點:因為
Thumbnail
在資料分析領域中,購物籃分析又稱關聯分析,從大量的交易資料中,探勘出在資料間具有相關性的隱藏規則與商業知識。
Thumbnail
  雖然Dart 語言本身支援跨平台的編譯方式,但在實務開發時還是不免需要使用外部非Dart語言所提供的函式庫進行功能開發且由於C 語言是最為廣泛且通用的程式語言,因此Dart語言也有提供支援與C語言函式庫互通性的方式;本篇主要是以MSVC作為C的編譯器來實作說明如何引用C語言會遇到的作法。
Thumbnail
#Duolingo 使用小心得 因為聽了天下雜誌的介紹,第一次知道這個App,標榜著「免費」、「短時間」、「多國語言」、「遊戲」等特色,我開始試著利用Duolingo來稍微維持一點英文。 #特色 個人建議,可以選用「邀請好友」的方式,讓自己體驗下Plus的會員使用,門檻其實要也不高。 2、簡體模式
Thumbnail
因為身為中國移民的家庭——在這裡先不要評論我這個用詞的正當性——家人的祖輩們又來自各方,我的語言使用其實很不道地,我聽得懂97%的台語,唯有那3%巷仔內的用語,或是各地的方言聽不太懂,通常我能聽得懂全台語的演講。