Come posso mantenere la trasparenza di un'immagine da un gestore Http quando utilizzo Graphics.DrawImage?
-
04-07-2019 - |
Domanda
Ho una serie di GIF che devo ritagliare al volo, sto usando un gestore HTTP in C # in modo da poter incapsulare meglio il codice - fornire la cache per il risultato ecc.
Attualmente, quando disegno l'immagine esistente su un nuovo Immagine
tramite l'oggetto Graphics
tutta la trasparenza viene persa.
Ho provato varie tecniche per cercare di mantenere la trasparenza, ma senza risultati.
Cose che ho provato:
- Uso della chiamata del metodo
MakeTransparent (Color)
- Uso di
ImageAttriutes
con una combinazione diColorMap
eSetColorKey
Non voglio davvero iniziare a utilizzare operatori non sicuri o chiamate Win32.
Qualche idea?
Soluzione
Sembra che abbia già ricevuto risposta Come si disegna un'immagine trasparente utilizzando System.Drawing?
Altri suggerimenti
Quando ho usato la trasparenza ho sempre usato Bitmap
. Cioè.
System.Drawing.Image SourceImage = System.Drawing.Image.FromFile("the.gif");
System.Drawing.Bitmap NewImage = new System.Drawing.Bitmap(SourceImage);
// Do Processing
NewImage.MakeTransparent();
// Store changes
NewImage.Save(..., System.Drawing.Imaging.ImageFormat.Png);
Naturalmente se non riesci ad allontanarti dall'oggetto Graphics
, ciò potrebbe non essere di grande utilità.