2013-03-07 23 views
1

我需要實現像amaro,hudson,棕褐色,崛起等Instagram照片效果。我知道這篇文章只使用基本效果:http://code.msdn.microsoft.com/windowsdesktop/Metro-Style-lightweight-24589f50Instagram照片效果在Windows 8 metro應用程序中使用c#

人們提出的另一種方式是實現Direct2d,然後使用它。但爲此,我需要編寫C++代碼,我沒有經驗。

任何人都可以建議一些其他方式來實現在c#中的Instagram效果?

這些效果是否有任何內置的C++文件?

回答

1

請參閱從CodeProject這個例子:Metro Style Lightweight Image Processing

上面的例子包含這些圖像效果。

  • 彩色濾光片
  • 浮雕
  • 陽光
  • 黑&白
  • 亮度
  • Oilpaint
  • 色調

請注意上面的例子似乎是在任的開發者預覽實施或發佈Windows 8預覽所以你會得到錯誤這樣

「Windows.UI.Xaml.Media.Imaging.WriteableBitmap」不包含一個 構造函數1個參數

所以,你必須通過將像素高度和圖像的像素寬度創建的WriteableBitmap實例。我編輯了樣本,它爲我工作。你必須改變wb = new WriteableBitmap(bs);wb = await GetWB();

StorageFile originalImageFile; 
WriteableBitmap cropBmp; 
public async Task<WriteableBitmap> GetWB() 
{ 
    if (originalImageFile != null) 
    { 
     //originalImageFile is the image either loaded from file or captured image. 
     using (IRandomAccessStream stream = await originalImageFile.OpenReadAsync()) 
     { 
      BitmapImage bmp = new BitmapImage(); 
      bmp.SetSource(stream); 
      BitmapDecoder decoder = await BitmapDecoder.CreateAsync(stream); 
      byte[] pixels = await GetPixelData(decoder, Convert.ToUInt32(bmp.PixelWidth), Convert.ToUInt32(bmp.PixelHeight)); 
      cropBmp = new WriteableBitmap(bmp.PixelWidth, bmp.PixelHeight); 
      Stream pixStream = cropBmp.PixelBuffer.AsStream(); 
      pixStream.Write(pixels, 0, (int)(bmp.PixelWidth * bmp.PixelHeight * 4)); 
     } 
    } 
    return cropBmp; 
} 

讓我知道如果你面對任何問題。

相關問題