2010-02-16 28 views
7

Używanie Delphi 2010 Chciałbym skopiować obraz PNG do schowka, zachowując przezroczystość alfa. Niestety, metoda TPngImage.SaveToClipboardFormat narysuje ją do bitmapy i przezroczystość zostanie utracona.Jak skopiować obraz PNG do schowka przy użyciu Delphi

Chciałbym, aby obraz PNG został wklejony w aplikacjach takich jak Photoshop i Word z przezroczystością alfa.

Każdy pomysł, jak to zrobić? W jaki sposób inne aplikacje robią, aby skopiować przezroczystość w schowku?

+0

John, czy to praca dla ciebie, bo mam ten sam problem riht teraz Używasz TPNGObject? Używam D7 byt, myślę, że to ta sama koncepcja. –

+0

O ile pamiętam, niewiele aplikacji obsługuje format PNG w schowku, ale jest to stary projekt i nie pamiętam dokładnie ograniczeń. – jonjbar

Odpowiedz

3

Możliwe, że używają alternatywnego formatu schowka, zobacz http://msdn.microsoft.com/en-us/library/ms649013(VS.85).aspx, aby wyświetlić listę dostępnych formatów schowków. Albo mogli zarejestrować swój własny format schowka takich jak

RegisterClipboardFormat('PNG') 

a następnie po prostu napisać dane PNG do schowka. Jeśli określony łańcuch formatowania schowka jest standardowy (tzn. Inne aplikacje rejestrują ten sam format schowka), możesz go wkleić do innych aplikacji obsługujących ten format schowka.

Może zajść potrzeba bezpośredniego wywołania funkcji systemu Windows, ponieważ opakowanie schowka Delphi nie jest zbyt dobre.

5

Najpierw skopiuję obraz z informacjami o przezroczystości do schowka w Photoshopie, a następnie sprawdzam, co faktycznie znajduje się w schowku. Kiedy się o tym dowiesz, prawdopodobnie możesz wymyślić, jak samemu napisać te dane.

3

z Delphi XE, wszystko zrobiłem było:

Clipboard.Assign(Image1.Picture.Graphic); 
+1

Dla innych czytników, 'Schowek' jest zdefiniowany w jednostce' ClipBrd'. – saastn

Powiązane problemy