Come posso mantenere la trasparenza di un'immagine da un gestore Http quando utilizzo Graphics.DrawImage?

StackOverflow https://stackoverflow.com/questions/240777

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 di ColorMap e SetColorKey

Non voglio davvero iniziare a utilizzare operatori non sicuri o chiamate Win32.

Qualche idea?

È stato utile?

Soluzione

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à.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top