Próbuję zapisać skopiowany obraz ze schowka ale to traci swój kanał alpha:Jak mogę uzyskać obraz ze schowka bez utraty kanału alfa w .NET?
Image clipboardImage = Clipboard.GetImage();
string imagePath = Path.GetTempFileName();
clipboardImage.Save(imagePath);
Gdybym skopiować obraz 32-bitowy Photoshop lub IE/Firefox/Chrome i uruchomić powyższy kod, wyjście traci swój kanał alfa, zamiast tego jest zapisywany na czarnym tle.
Zdjęcie zostanie zapisane jako PNG, które może zawierać kanał alfa.
Poprawne dane znajdują się w schowku, ponieważ wklejenie do innych aplikacji (takich jak PhotoShop) zachowuje kanał alfa.
Czy ktoś może mnie wyrzucić z mojej nędzy?
Z góry dziękuję!
Aktualizacja:
// outputs FALSE
Debug.WriteLine(Image.IsAlphaPixelFormat(Clipboard.GetImage().PixelFormat));
Powyższe dane wskazują, że alfa jest stracone tak szybko, jak jest to zrobione z schowka. Być może muszę go usunąć ze schowka w inny sposób?
+1 tylko dla prawidłowego użycia jego i jego dobrego pytania: – Kevin
. jeśli rozwiązałeś, może chcesz zaktualizować swoje pytanie za pomocą działającego kodu? – Nasenbaer