Silverlight 4 ile web kameradan fotoğraf çek
Bugün silverlight ile ilgili bazı yeni bilgiler daha öğrendim. Silverlight aracılığı ile fotoğraf nasıl çekilir die araştırırken karşıma güzel bir örnek çıktı. Şimdi sizlere bunu paylaşayım dedim.

Daha önce yayınlamış olduğum yazımdaki örnekten devam edeceğim. Kameraya nasıl bağlandığımı burada sizlere tekrardan anlatmaya gerek görmüyorum.
Kısa kısa bazı kodları açıklamak gerekirse;
using FluxJpeg.Core; using FluxJpeg.Core.Encoder;
İlgili görüntüyü resim formatına dönüştürmek için FJCore adlı dll dosyasını projeye dahil ediyorum.
private void Bsavephoto_Click(object sender, RoutedEventArgs e)
{
if (this.SaveFileDialog1.ShowDialog().Value)
{
using (Stream dstStream = this.SaveFileDialog1.OpenFile())
{
SaveSnapshot(dstStream);
}
}
}
private void SaveSnapshot(Stream dstStream)
{
try
{
// Encoding The Snapshot
WriteableBitmap bmp = new WriteableBitmap(this.Rvideo, null);
EncodeJpeg(bmp, dstStream);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error saving snapshot", MessageBoxButton.OK);
}
}
public static void EncodeJpeg(WriteableBitmap bmp, Stream dstStream)
{
// Init buffer in FluxJpeg format
int w = bmp.PixelWidth;
int h = bmp.PixelHeight;
int[] p = bmp.Pixels;
byte[][,] pixelsForJpeg = new byte[3][,]; // RGB colors
pixelsForJpeg[0] = new byte[w, h];
pixelsForJpeg[1] = new byte[w, h];
pixelsForJpeg[2] = new byte[w, h];
// Copy WriteableBitmap data into buffer for FluxJpeg
int i = 0;
for (int y = 0; y < h; y++)
{
for (int x = 0; x < w; x++)
{
int color = p[i++];
pixelsForJpeg[0][x, y] = (byte)(color >> 16); // R
pixelsForJpeg[1][x, y] = (byte)(color >> 8); // G
pixelsForJpeg[2][x, y] = (byte)(color); // B
}
}
//Encode Image as JPEG
var jpegImage = new FluxJpeg.Core.Image(new ColorModel { colorspace = ColorSpace.RGB }, pixelsForJpeg);
var encoder = new JpegEncoder(jpegImage, 95, dstStream);
encoder.Encode();
}
Fotoğraf çek adlı butona basıldığı zaman Bsavephoto_Click fonsiyonunu çağırıyorum. Burada dosya kaydedici ekranının açılmasını sağlıyorum.
İlgili resmin adını girdikten sonra SaveSnapshot() fonsiyonu ile ilgili görüntüyü resim formatına dönüştürüp kullanıcının kaydetmesine olanak sağlıyoruz.
Umarım işinize yarar.
Çalışır haldeki örnek proje :
Örnek projeyi indirmek için tıklayın.
Kaynak : http://kodierer.blogspot.com/2009/11/convert-encode-and-decode-silverlight.html
Yorum Yapın
Etiketler
Son Yazılar
- Cep telefonu kullanıcılarını mobil siteye nasıl yönlendirilir?
- require vs require_once
- IFrame ‘in yüksekliğini içeriğe göre ayarlamak
- Bmp uzantılı resim dosyasını jpg veya png olarak kaydetmek
- Php Resim Boyutlandırmasında Memory Limit sorunu
Son Yorumlar
- Php’ de Ajax yardımıyla dosya yükleme (File Upload) için chat
- Asp.Net’de Ajax kullanılarak CAPTCHA için Enes Pekkaya
- Asp.Net’de Ajax kullanılarak CAPTCHA için Cenk
- JQuery Form Kontrol için Sedat Kumcu
- Garanti Sanal Pos Kurulumu, Sorunlar ve Çözümler için Enes Pekkaya
Haftanın Özlü Sözü
Bağlantılar
- Hayata Tat Kat
- Innova Bilişim Çözümleri
- Onur Değerli
- Pleksus Bilişim Teknolojileri
- Sinan Gül
- Taner Günal
- Toppik – Minoxil
Arşivler
- Mart 2012
- Şubat 2012
- Ocak 2012
- Aralık 2011
- Kasım 2011
- Ekim 2011
- Eylül 2011
- Temmuz 2011
- Haziran 2011
- Mayıs 2011
- Mart 2011
- Ocak 2011
- Aralık 2010
- Kasım 2010
- Ekim 2010
- Eylül 2010
- Ağustos 2010
- Temmuz 2010
- Haziran 2010
- Mayıs 2010
- Nisan 2010
- Mart 2010
- Şubat 2010
- Ocak 2010
- Haziran 2009
- Mayıs 2009
- Nisan 2009
- Mart 2009

