Koristim OpenFileDialog i image kontrolu za prikaz slike. Evo koda:
Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();
dlg.Filter = "Image Files(*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG;*.GIF|All files (*.*)|*.* ";
if (dlg.ShowDialog() == true)
{
Stream stream = File.Open(dlg.FileName, FileMode.Open);
BitmapImage imgsrc = new BitmapImage();
imgsrc.BeginInit();
imgsrc.StreamSource = stream;
imgsrc.EndInit();
image1.Source = imgsrc;
}
RenderTargetBitmap rtb = new RenderTargetBitmap(800, 800, 96, 96, PixelFormats.Pbgra32);
rtb.Render(image1);
JpegBitmapEncoder jpg = new JpegBitmapEncoder();
jpg.Frames.Add(BitmapFrame.Create(rtb));
using (Stream fs = File.Create("c:\\test.jpg"))
{
jpg.Save(fs);
}
Imam 2 problema sa ovim kodom.
1. Kada odaberem sliku prvi put (ne zatvaram program), on napravi samo crnu sliku. Kada odaberem drugu sliku onda program snimi prvu sliku. Dakle kasni... kako????
2. Drugi problem je "This file is in use". To se desava ako odaberem istu sliku.
Probao sam da ga rijesim dodavanjem sljedeceg koda:
imgsrc.BeginInit();
imgsrc.CreateOptions = BitmapCreateOptions.IgnoreImageCache;
imgsrc.CacheOption = BitmapCacheOption.OnLoad;
imgsrc.StreamSource = stream;
imgsrc.EndInit();
image1.Source = imgsrc;
Ali onda mi program puca na
imgsrc.EndInit();
Sa greskom "Key cannot be null".
Muka mi je od ovog koda vise, ako ime jednostavno rjesenje za ono sto zelim... help :)
[IMG]http://img233.imageshack.us/img233/5078/thumbnailte1.th.jpg[/IMG]
They say I look like daddy :D