Merhaba Arkadaşlar,
Bu gün Nokia Imaging SDK ile ilgili bilgi vermek istiyorum. Çekilen fotoğraflara kolaylıkla efekt vermenin nasıl olduğunu öğreneceğiz. Öncelikle Şunu bilmek lazım: Çekilen fotoğrafın editlenmesi için bir EditingSession oluşturmamız lazım. Altın kural bu aslında. Ayrıca fotoğrafı original boyutlarda yani pixel pixel efekt vermek için sistemin capability’lerini de belirlememiz gerekmektedir.
Öncelikle bu izni Windows Phone projemize verelim:
WPAppManifest.xml dosyamıza özelliği ekleyelim.
1 |
<Capability Name="ID_CAP_MEDIALIB_PHOTO"/> |
Libraryleri projemize ekleyelim:
1 2 3 4 5 6 7 8 9 10 |
using ImagingSDK.Resources; using Microsoft.Phone.Tasks; using Nokia.Graphics.Imaging; using Nokia.InteropServices.WindowsRuntime; using System.IO; using System.Windows.Media.Imaging; using System.Runtime.InteropServices.WindowsRuntime; using Microsoft.Phone.Tasks; using Windows.Storage.Streams; using Microsoft.Xna.Framework.Media; |
MainPage sınıfımızın içerisine EditingSession nesnemizi ekleyelim:
1 |
private EditingSession _Editingsession; |
MainPage Sınıfımız:
Nokia Imaging SDK bir çok efekt desteği sağlamaktadır. Efekt listesine aşağıdaki linkten ulaşabilirsiniz:
http://developer.nokia.com/Resources/Library/Lumia/#!nokia-imaging-sdk.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Navigation; using Microsoft.Phone.Controls; using Microsoft.Phone.Shell; using ImagingSDK.Resources; using Microsoft.Phone.Tasks; using Nokia.Graphics.Imaging; using Nokia.InteropServices.WindowsRuntime; using System.IO; using System.Windows.Media.Imaging; using System.Runtime.InteropServices.WindowsRuntime; using Microsoft.Phone.Tasks; using Windows.Storage.Streams; using Microsoft.Xna.Framework.Media; namespace ImagingSDK { public partial class MainPage : PhoneApplicationPage { // Constructor private EditingSession _Editingsession; public MainPage() { InitializeComponent(); } private void PickAnImageButton_Click(object sender, RoutedEventArgs e) { //Fotoğraf Seçmek için Gerekli Task Çağırılır PhotoChooserTask chooser = new PhotoChooserTask(); chooser.Completed += PickImageCallback; chooser.Show(); } private async void PickImageCallback(object sender, PhotoResult e) { if (e.TaskResult != TaskResult.OK) { return; } //Session initalize edilir _Editingsession = await EditingSessionFactory.CreateEditingSessionAsync(e.ChosenPhoto); try { //Render for Original Image !!!! //Orijinal Dosya için Image Rendering Yapılır await _Editingsession.RenderToImageAsync(OriginalImage, OutputOption.PreserveAspectRatio); //Rendering for Edited Filter ! //Filtre Eklenir ve Image Rendering Yapılır _Editingsession.AddFilter(FilterFactory.CreateCartoonFilter(true)); await _Editingsession.RenderToImageAsync(CartoonImage, OutputOption.PreserveAspectRatio); } catch (Exception) { throw; } } } } |
MainPage.xaml dosyamızın içerisindeki ContentPanel Grid’imiz:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> <!--LayoutRoot is the root grid where all page content is placed--> <ScrollViewer> <StackPanel> <TextBlock Text="Nokia Imaging SDK" Style="{StaticResource PhoneTextNormalStyle}" /> <Image x:Name="CartoonImage" Height="480" Width="800" Stretch="UniformToFill" /> <Image x:Name="OriginalImage" Height="100" Width="157" Stretch="UniformToFill"/> <Button Content="Pick an image" Click="PickAnImageButton_Click" /> </StackPanel> </ScrollViewer> </Grid> |
İşlem Bu Kadar 🙂