[ wex-alpha @ 08.07.2010. 15:37 ] @
Treba da snimim sliku sa Image kontrole koja se nalazi na formi. Kontrole spadaju pod Visuals, dakle i Image je visual.

Sad na MSDN sam nasao da RenderTargetBitmap je maltene dizajnirana za tu svrhu. Ali kako god pokusam slika mi ne postize originalnu velicinu. Ma sta originalnu velicinu, ni blizu tog. Dobijem file sa crnom slikom, a negdje po njoj se nalazi i moja slika, drasticno smanjena.

Evo koda koji to radi:



Code (csharp):


RenderTargetBitmap  rtb = new RenderTargetBitmap(800, 800, 96, 96, PixelFormats.Pbgra32);
            rtb.Render(image1); // ovo je naziv Image kontrole

            JpegBitmapEncoder jpg = new JpegBitmapEncoder();
            jpg.Frames.Add(BitmapFrame.Create(rtb));
           
                using (Stream fs = File.Create(pathzafilm1))

               
                {
                    jpg.Save(fs);
                   
                }


 



Koliko sam shvatio RenderTarget radi sljedece stvari:

1. Slika (crna pozadina je kreirana) velicine 800x800 ->>>>>RenderTargetBitmap(800, 800, 96, 96, PixelFormats.Pbgra32);

2. Moja slika, kojoj je velicina na neki nacin smanjena je naljepeljena na tu crnu sliku.


Vjerovatno grijesim, ali evo kako ja vidim RenderTargetBitmap.

RenderTargetBitmap(a,b,c,d,e)

- a,b su velicina slike
- b,c dubina piksela
- nesto radi sa bojama

Nigdje ne mogu naci kako da svoju sliku uvecam.


Probao sam sljedece, iako nisam vidjeo da ce to ista pametno uraditi


Code (csharp):

 RenderTargetBitmap rtb = new RenderTargetBitmap(Convert.ToInt32(image1.ActualHeight), Convert.ToInt32(image1.ActualWidth), 30, 30, PixelFormats.Pbgra32);
                rtb.Render(image1);


 


Naravno ista stvar.

Onda sam probao trik. Napravio sam treci Image koji drzi identicnu sliku. Tom trecem Image-u mpgu mjenjati velicinu, kako god ja zelim jer sam stavio izvan forme. Ali kako god ja mjenjao sliku, ista stvar. Ima promjena doduse, zavisno kada mjenjam sliku ali ja ne vidim pattern prema kojem bi se mogao ravnati dok ne ubodem pravu stvar.

Onda sam probao da stavim Image u canvas i da canvas snimim. Samo dobijam crnu sliku sa canvasom.

Imam i treci trik, koji jos nisam probao. Buduci da druge Visual-e (button, Combo...) bez problema snimam, mozda da napunim button sa slikom, onda ga razvucem ko pracku te njega snimim.
Mislim, mora biti rjesenje a da se ja ne zezam sa button trikom.