Autor Wątek: c# Bitmap.MakeTransparent  (Przeczytany 810 razy)

Offline ShadowDancer

  • Redaktor

# Luty 26, 2011, 14:32:55
Trafiłem ostatnio na pewną anomalię. Mianowicie rysuję sobie mapę z hexów i mam taki wynik:

Obrazek jest w formacie png. Teraz zakomentowałem sobię linię Bitmap.MakeTransparent(Color.Pink); i dostaję coś takiego:

Przeżyłbym to, gdyby nie to, że obrazek ma zły rozmiar lub jest dziwnie przesunięty podczas rysowania(czerwona kropka to punkt, który powinien być środkiem obrazka). Kod rysujący:
Graphics.DrawImage(Bitmap, new Point((int)(Offset.X - (Bitmap.Width / 2.0f)), (int)(Offset.Y - (Bitmap.Height / 2.0f))));
                            Graphics.DrawRectangle(new Pen(Brushes.Red), new Rectangle((int)Offset.X - 1, (int)Offset.Y - 1, 2, 2));

Co może być przyczyną takiego zachowania?
« Ostatnia zmiana: Luty 26, 2011, 17:57:48 wysłana przez ShadowDancer »

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline ShadowDancer

  • Redaktor

# Luty 26, 2011, 17:58:28
Rozwiązałem problem, może przyda się potomnym:
Podczas zapisywania obrazu w gimpie należy odznaczyć "zapisz rozdzielczość".