Enum | Engin Polat\'ın Windows 8 , Windows Phone 8 ve C# içerikli programcılık sitesi

Arşiv

Etiketlenen yazılar enum

AçıkAkademi C# uygulaması geliştirmek istiyorum Eğitimleri 2016

26 August 2016 Yorum yapılmamış

AçıkAkademi üzerinde yayınlanan 16 video’luk C# uygulama geliştirme eğitim seti yayına alındı.
Sevgili arkadaşım Bora Kaşmer ile hazırladığımız eğitim setini sizler de C# uygulaması geliştirmek istiyorum başlıklı AçıkAkademi sayfasından izleyebilirsiniz. Eğitim konu listesi;

  • Açılış
  • C# Hakkında
  • Visual Studio
  • İlk Proje
  • Rakamsal Veri Tipleri-1
  • Rakamsal Veri Tipleri-2
  • Tarihsel Veri Tutabilen Değişkenler-1
  • Tarihsel Veri Tutabilen Değişkenler-2
  • Liste Tipinde Değişkenler
  • For Döngüsü
  • ForEach Döngüsü
  • Switch
  • Sınıflar ve Öğeler
  • Özellikler ve Enumlar
  • Metodlar
  • C# Eğitiminden En İyi Nasıl Faydalanabilirim?

AçıkAkademi için bu eğitim setini çekmemizi sağlayan sevgili arkadaşım Ümit Batu‘ya da teşekkür ederim.

Windows 10 UWP uygulamalarında OCR kullanımı

14 March 2016 1 yorum

Microsoft, Windows 10 uygulamaları içerisinden kullanabilmemiz için Optical Character Recognition (OCR) kütüphanelerini Universal Windows Platform (UWP) içerisine ekledi.

Böylece, Windows 10 yüklü olan tüm cihazlarda çalışabilen UWP uygulamaları Optical Character Recognition (OCR) yeteneklerine sahip olabiliyor.

Windows 10 Kasım 2015 güncellemesi ile birlikte OCR desteği 25 dil için hali hazırda sağlanıyor ve Türkçe dili de bunlardan biri.

Üstelik uygulamanın kullanılabilirliğini arttıracak bu yapıyı kodlamanız son derece kolay.

Kamerayı açarak resim çeken ve çektiği resimdeki yazıları algılayan örnek bir projeyi birlikte yapalım;

Öncelikle MainPage.xaml dosyasını açalım ve resim çekme ve resim içerisindeki yazıları bulma işini başlatacak olan Button nesnesini sayfaya ekleyelim;

<Page
	x:Class="OCROrnek.MainPage"
	xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
	xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
	xmlns:local="using:OCROrnek">

	<Grid Margin="20">
		<Button Content="Tara" Click="Button_Click" />
	</Grid>

</Page>

MainPage.xaml.cs dosyası içerisinde Button_Click() methodunu oluşturalım ve OCR kütüphanelerini kullanmaya başlayalım;

private async void Button_Click(object sender, RoutedEventArgs e)
{
	var ui = new CameraCaptureUI();
	var file = await ui.CaptureFileAsync(CameraCaptureUIMode.Photo);

	var stream = await file.OpenAsync(FileAccessMode.Read);
	var decoder = await BitmapDecoder.CreateAsync(stream);

	var bitmap = await decoder.GetSoftwareBitmapAsync();

	var engine = OcrEngine.TryCreateFromUserProfileLanguages();
	var result = await engine.RecognizeAsync(bitmap);

	string extracted = result.Text;
}

Yukarıdaki method içerisinde öncelikle CameraCaptureUI sınıfını ve CaptureFileAsync() methodunu kullanarak uygulamamızın kamera aracılığıyla resim çekmesini sağladık. Bunun için CaptureFileAsync() method‘una CameraCaptureUIMode enum‘ından Photo değerini verdik.

Çekilen resmi OpenAsync() methodu ile açıp BitmapDecoder sınıfının CreateAsync() methoduna parametre olarak verdik. Böylece çekilen resmin hafıza içerisinde tutulduğu yere erişim sağlamış olduk.

GetSoftwareBitmapAsync() methodunu kullanarak SoftwareBitmap sınıfından bir değişken oluşturmuş, resmi bu değişken içerisinde saklamış olduk.

Artık OcrEngine sınıfının TryCreateFromUserProfileLanguages() methodu aracılığıyla kullanıcının cihazı kullandığı dilde OCR yapabileceği değişkeni oluşturabilir, RecognizeAsync() methodu ile karakter tanıma işini yaptırabiliriz.

Son olarak, OcrResult tipindeki değişkenin Text özelliği ile taranan resmin içerisindeki yazıları string tipinde elde edebiliriz.

Ben aşağıdaki görseli kullanarak bir tarama yaptırdım ve sonucu aşağıya yazdım;

Bir mum diğerini tutuşturmakla, kendinden bir şey kaybetmez. Mevlana Celaleddin-i Rumi

Windows 10 UWP uygulamasının Phone, Tablet veya Desktop cihazda çalıştığını bulmak

04 December 2015 Yorum yapılmamış

Eğer yazdığınız Windows 10 UWP uygulamasının hangi tip cihazda çalıştığını bulmanız gerekiyorsa, aşağıdaki fonksiyondan faydalanabilirsiniz;

Bu fonksiyonda Windows.System.Profile namespace‘inde bulunan AnalyticsInfo sınıfının VersionInfo property‘sinin DeviceFamily property‘sinden ve Windows.Devices.Input namespace‘inde bulunan KeyboardCapabilities sınıfının KeyboardPresent property‘sinden faydalanıyoruz.

Kaynak: Figuring out your if your app is run on Phone, Tablet or Desktop

Universal App içerisinden WiFi bağlantısını açıp/kapatmak

16 February 2015 1 yorum

Aslında uygulama içerisinde WiFi bağlantısını açıp/kapatamayız. Fakat WiFi bağlantısını açıp/kapatabilecek sistem ayarları ekranını açabiliriz.

Bunun için basitçe;

yeterlidir.

private void btnWiFiAcKapat_Click(object sender, RoutedEventArgs e)
{
	var connectionSettingsTask = new ConnectionSettingsTask();
	connectionSettingsTask.ConnectionSettingsType = ConnectionSettingsType.WiFi;
	connectionSettingsTask.Show();
}

Windows Phone 8 cihazın WiFi üzerinden internete bağlı olduğunu kontrol etme

18 July 2014 Yorum yapılmamış

MSDN‘de yeralan How to detect network changes for Windows Phone 8 makalesine göre Windows Phone cihazın WiFi üzerinden internete bağlı olduğunu anlamak için DeviceNetworkInformation class‘ının IsWiFiEnabled property‘sini kullanabiliriz.

Bu property sayesinde çok hızlı bir şekilde cihazda WiFi özelliğinin aktif olup/olmadığını yakalayabiliriz, fakat cihaz üzerinde WiFi aktif olabilir ama internete 3G üzerinden bağlı olabilir, DeviceNetworkInformation.IsWiFiEnabled bu durumda gene true değerini döndürecektir.

Eğer uygulamamızın çalıştığı cihazın internete WiFi üzerinden bağlı olduğundan emin olmak istiyorsak bir kontrol daha yapmalıyız.

NetworkInterface class‘ının NetworkInterfaceType property‘si eğer NetworkInterfaceType enum‘ından Wireless80211 değerine sahipse, cihazın WiFi üzerinden internete bağlı olduğundan emin olabiliriz.

Bu durumda yapmamız gereken kontrol aşağıdaki gibi olmalı;

if (DeviceNetworkInformation.IsWiFiEnabled && NetworkInterface.NetworkInterfaceType == NetworkInterfaceType.Wireless80211)
{
// Cihaz WiFi üzerinden internete bağlı
}