新版上線!解析PSD文件管理控制項Aspose.PSD實用功能——色彩平衡調整層

来源:https://www.cnblogs.com/mnrssj-Aspsoe/archive/2019/11/08/11820736.html

Aspose.PSD for .NET高級PSD文件格式操作API,沒有任何Adobe Photoshop依賴項。API允許創建或編輯Photoshop文件,並提供更新圖層屬性,添加水印,執行圖形操作或將一種文件格式轉換為另一種文件的功能。 近日,Aspose.PSD for .NET更新至最新版本 ...


Aspose.PSD for .NET高級PSD文件格式操作API,沒有任何Adobe Photoshop依賴項。API允許創建或編輯Photoshop文件,並提供更新圖層屬性,添加水印,執行圖形操作或將一種文件格式轉換為另一種文件的功能。

近日,Aspose.PSD for .NET更新至最新版本v19.10,新增支持包括PSD的Bicubic重採樣,反轉和色彩平衡調整層支持。究竟應該如何操作呢?我們一起來看一看新功能詳解吧!


實施雙三次重採樣

重新採樣意味著您應該更改圖像的像素尺寸。下採樣時,實際上是在消除像素,因此會從圖像中刪除信息和細節。向上採樣時,您將添加像素並增強細節。Photoshop通過使用插值來添加這些像素。在下麵的示例中,我們演示瞭如何通過使用.NET的Aspose.PSD來執行雙三次重採樣。

 

//在運行時添加顏色疊加層效果
string dataDir = RunExamples.GetDataDir_PSD();


string sourceFile = dataDir + "sample_bicubic.psd";
string destNameCubicConvolution = dataDir + "ResamplerCubicConvolutionStripes_after.psd";

//將現有圖像載入到PsdImage類的實例中
using (PsdImage image = (PsdImage)Image.Load(sourceFile))
{
    image.Resize(300, 300, ResizeType.CubicConvolution);
    image.Save(destNameCubicConvolution, new PsdOptions(image));
}

   
string destNameCatmullRom = dataDir + "ResamplerCatmullRomStripes_after.psd";

//將現有圖像載入到PsdImage類的實例中
using (PsdImage image = (PsdImage)Image.Load(sourceFile))
{
    image.Resize(300, 300, ResizeType.CatmullRom);
    image.Save(destNameCatmullRom, new PsdOptions(image));
}

          
string destNameMitchell = "ResamplerMitchellStripes_after.psd";

// 將現有圖像載入到PsdImage類的實例中
using (PsdImage image = (PsdImage)Image.Load(sourceFile))
{
    image.Resize(300, 300, ResizeType.Mitchell);
    image.Save(destNameMitchell, new PsdOptions(image));
}

           
string destNameCubicBSpline = "ResamplerCubicBSplineStripes_after.psd";

//將現有圖像載入到PsdImage類的實例中
using (PsdImage image = (PsdImage)Image.Load(sourceFile))
{
    image.Resize(300, 300, ResizeType.CubicBSpline);
    image.Save(destNameCubicBSpline, new PsdOptions(image));
}

           
string destNameSinC = "ResamplerSinCStripes_after.psd";

//將現有圖像載入到PsdImage類的實例中
using (PsdImage image = (PsdImage)Image.Load(sourceFile))
{
    image.Resize(300, 300, ResizeType.SinC);
    image.Save(destNameSinC, new PsdOptions(image));
}

           
string destNameBell = "ResamplerBellStripes_after.psd";

// 將現有圖像載入到PsdImage類的實例中
using (PsdImage image = (PsdImage)Image.Load(sourceFile))
{
    image.Resize(300, 300, ResizeType.Bell);
    image.Save(destNameBell, new PsdOptions(image));
}

 

色彩平衡調整層

色彩平衡調整層使您能夠調整其圖像的色彩。它顯示了三個顏色通道及其互補色,您可以調整這兩個顏色對的平衡以更改圖像的外觀。本文演示了Aspose.PSD for .NET 在圖像上執行“ 顏色平衡”調整層的用法。

 

//在運行時添加顏色疊加層效果
string dataDir = RunExamples.GetDataDir_PSD();


var filePath = dataDir + "ColorBalance.psd";
var outputPath = dataDir + "ColorBalance_out.psd";
using (var im = (FileFormats.Psd.PsdImage)Image.Load(filePath))
{
    foreach (var layer in im.Layers)
    {
        var cbLayer = layer as ColorBalanceAdjustmentLayer;
        if (cbLayer != null)
        {
            cbLayer.ShadowsCyanRedBalance = 30;
            cbLayer.ShadowsMagentaGreenBalance = -15;
            cbLayer.ShadowsYellowBlueBalance = 40;
            cbLayer.MidtonesCyanRedBalance = -90;
            cbLayer.MidtonesMagentaGreenBalance = -25;
            cbLayer.MidtonesYellowBlueBalance = 20;
            cbLayer.HighlightsCyanRedBalance = -30;
            cbLayer.HighlightsMagentaGreenBalance = 67;
            cbLayer.HighlightsYellowBlueBalance = -95;
            cbLayer.PreserveLuminosity = true;
        }
    }

    im.Save(outputPath);
}

如果您有任何需求,請隨時加入Aspose技術交流群(642018183)


您的分享是我們最大的動力!

更多相關文章
  • 背景 ASP.NET Core 支持依賴關係註入 (DI) 軟體設計模式,並且預設註入了很多服務,具體可以參考 "官方文檔" , 相信只要使用過依賴註入框架的同學,都會對此有不同深入的理解,在此無需贅言。 然而,在引入 IOC 框架之後,對於之前常規的對於類的依賴(new Class)變成通過構造函 ...
  • 保留兩位小數點 由於簡單的原因大家直接看代碼塊。 執行結果如下: ...
  • using System; namespace class1 { class program { static void Main(string[] args) { Console.Write("請輸入a="); double a = double.Parse(Console.ReadLine()) ...
  • 1.查詢生命周期 在進入正題時候,我們先來瞭解EF Core查詢的生命周期。 1.1LINQ查詢會由Entity Framework Core處理並生成給資料庫提供程式可處理的表示形式(說白了就是生成給資料庫可識別數據形式)。 ●發送的查詢結果(查詢表示形式)會被緩存,以便每次執行查詢時無需進行1. ...
  • using System; namespace class1 { class program { static void Main(string[] args) { //值傳遞引用,實際參數不會變化 Console.Write("請輸入a="); double a = double.Parse(Co ...
一周排行
  • static void Main(string[] args) { string url = "https://go.microsoft.com/fwlink/?linkid=2108895&clcid=0x409"; DownloadBigFile(new Uri(url), "ssms.... ...
  • 1. 使用ASP.NET Core 3.x 構建 RESTful API - 1.準備工作 什麼是REST 什麼是REST REST一詞最早是在2000年,由Roy Fielding在他的博士論文《Architectural Styles and the Design of Network-base ...
  • wpf 兩個自定義控制項 一個是IP控制項,一個滑動條。先看下效果圖 IPControl 1、實際工作中有時需要設置IP信息,就想著做一個ip控制項。效果沒有window自帶的好,需要通過tab切換。但也能滿足使用。廢話不多說直接上代碼 IPControl.xaml IPControl.xaml.cs 2 ...
  • 近期和幾位做嵌入式開發的朋友閑聊過程中,一位朋友抱怨到:這C#太難用了,我想在N個窗體(或者是N個用戶組件之間)傳遞值都搞不定,非得要定義一個全局變數來存儲,然後用定時器來刷新值,太Low了。我急切的回答道:這很簡單,不就是委托的事嘛。那你來一個示例啊:朋友道。此為這篇博客的起因,所以此篇博客對於有 ...
  • 在面對對象編程中,類的三大特性分別為封裝,繼承,多態。其中多態的具體實現,依賴於三個方法,也就是虛方法,抽象類和介面。 多態的具體作用是什麼呢?或者說多態的存在有什麼意義呢?多態的存在有效的降低了程式的耦合度,在使用的時候,不僅可以表現大家都有的共性,還能在必要的時候突出一些特殊的的個性。 那麼如何 ...
  • [toc] 前言 在之前已經提到過,公用類庫Util已經開源,目的一是為了簡化開發的工作量,畢竟有些常規的功能類庫重覆率還是挺高的,二是為了一起探討學習軟體開發,用的人越多問題也就會越多,解決的問題越多功能也就越完善, 倉庫地址: "April.Util_github" , "April.Util_ ...
  • 【ASP.NET Core學習】在ASP.NET Core 種使用Entity Framework Core介紹,包括如何添加Entity Framwork Core,創建模型和遷移到資料庫,查詢數據,保存數據,使用事務,處理併發衝突 ...
  • 環境:MacOS 10.13 MAMAP Prophp 7.0.33 + xdebugVisual Studio Code前言我所理解的 POP Chain:利用魔術方法並巧妙構造特殊屬性調用一系列函數或類方法以執行某種敏感操作的調用堆棧反序列化常用魔法函數前言我所理解的 POP Chain:利用魔 ...
  • 當創建隊列jobs、監聽器或訂閱伺服器以推送到隊列中時,您可能會開始認為,一旦分派,隊列工作器決定如何處理您的邏輯就完全由您自己決定了。 嗯……並不是說你不能從作業內部與隊列工作器交互,但是通常情況下,哪怕你做了,也是沒必要的。 這個神奇的騷操作的出現是因為“InteractsWithQueue”這 ...
  • 在說正題之前先解釋一下交換機模式是個籠統的稱呼,它不是一個單獨的模式(包括了訂閱模式,路由模式和主題模式),交換機模式是一個比較常用的模式,主要是為了實現數據的同步。 首先,說一下訂閱模式,就和字面上的意思差不多主要就是一個生產者,多個消費者,同一個消息被多個消費者獲取,先看一下官網的圖示 整體執行 ...
x