使用 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# 語言輕鬆地壓縮圖片並調整其大小。這對於開發需要處理圖片的應用程式非常有用,例如圖片上傳、圖片庫管理等。希望本教學對您有所幫助!

67會員
118內容數
這裡將以輕鬆風格,深入探討程式設計的基礎和高級概念。從程式語言到演算法,我們將以易懂的方式解釋每個主題,讓你輕鬆掌握。無論你是初學者或有經驗者,都能在這裡找到適合你的內容。無論你的目標是成為專業開發者還是擴展知識,我們都會陪伴你一同成長!
留言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
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
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
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
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%巷仔內的用語,或是各地的方言聽不太懂,通常我能聽得懂全台語的演講。