Domanda

Voglio aggiungere un'ombra esterna a un file di immagine. Qual è il modo migliore per farlo? Ho pensato di creare un controllo immagine WPF e di aggiungere un effetto bitmap. Ma come posso salvare il risultato in un file?

Grazie, Eric

È stato utile?

Soluzione

Puoi usare RenderTargetBitmap e un Encoder per farlo. L'encoder può essere Png, Jpeg ecc. Sotto il codice imgControl rappresenta il tuo controllo immagine. Ma poiché si tratta di un effetto bitmap, potrebbe essere necessario inserire questa immagine in una griglia e fornire un margine adeguato equivalente al dropshadow e quindi invece di imgControl utilizzare la griglia nel codice seguente.

double Height = imgControl.ActualHeight;
double Width = imgControl.ActualWidth;

RenderTargetBitmap bmp = new RenderTargetBitmap((int)Width, (int)Height, 
                                                96, 96, PixelFormats.Pbgra32);
bmp.Render(imgControl);

BitmapEncoder encoder = new JpegBitmapEncoder();

encoder.Frames.Add(BitmapFrame.Create(bmp));

using (Stream stream = File.Create("Yourfile.jpeg"))
{
    encoder.Save(stream);
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top