투명 이미지를 클립보드에 복사
많은 개발자들이 투명한 이미지를 클립보드에 복사할 때 투명성을 유지하는 데 어려움을 겪습니다. 기본적으로 Windows 클립보드는 투명도를 지원하지 않습니다.
클립보드 데이터의 투명성
클립보드 데이터의 투명성을 지원하려면 이미지가 여러 형식으로 포함되어야 합니다.
투명하게 이미지 복사
투명도를 유지하면서 이미지를 복사하려면 다음 코드를 사용하세요.
<code class="language-c#">public static void SetClipboardImage(Bitmap image, Bitmap imageNoTr, DataObject data) { Clipboard.Clear(); if (data == null) data = new DataObject(); if (imageNoTr == null) imageNoTr = image; using (MemoryStream pngMemStream = new MemoryStream()) using (MemoryStream dibMemStream = new MemoryStream()) { // 作为标准位图,不支持透明度 data.SetData(DataFormats.Bitmap, true, imageNoTr); // 作为PNG。GIMP会优先选择此格式而不是其他两种。 image.Save(pngMemStream, ImageFormat.Png); data.SetData("PNG", false, pngMemStream); // 作为DIB。许多应用程序(错误地)将其识别为ARGB。 Byte[] dibData = ConvertToDib(image); dibMemStream.Write(dibData, 0, dibData.Length); data.SetData(DataFormats.Dib, false, dibMemStream); // 'copy=true' 参数表示在操作后可以安全地释放MemoryStream。 Clipboard.SetDataObject(data, true); } }</code>
클립보드에서 이미지 가져오기
클립보드에서 이미지를 검색하려면 다음 코드를 사용하세요.
<code class="language-c#">public static Bitmap GetClipboardImage(DataObject retrievedData) { Bitmap clipboardimage = null; // 顺序:尝试PNG,然后尝试32位ARGB DIB,然后尝试普通的Bitmap和Image类型。 if (retrievedData.GetDataPresent("PNG", false)) { MemoryStream png_stream = retrievedData.GetData("PNG", false) as MemoryStream; if (png_stream != null) using (Bitmap bm = new Bitmap(png_stream)) clipboardimage = ImageUtils.CloneImage(bm); } if (clipboardimage == null && retrievedData.GetDataPresent(DataFormats.Dib, false)) { MemoryStream dib = retrievedData.GetData(DataFormats.Dib, false) as MemoryStream; if (dib != null) clipboardimage = ImageFromClipboardDib(dib.ToArray()); } if (clipboardimage == null && retrievedData.GetDataPresent(DataFormats.Bitmap)) clipboardimage = new Bitmap(retrievedData.GetData(DataFormats.Bitmap) as Image); if (clipboardimage == null && retrievedData.GetDataPresent(typeof(Image))) clipboardimage = new Bitmap(retrievedData.GetData(typeof(Image)) as Image); return clipboardimage; }</code>
위 방법을 사용하면 개발자는 투명도를 지원하는 애플리케이션에서 투명도를 유지하면서 클립보드의 투명 이미지를 효율적으로 처리할 수 있습니다.
위 내용은 투명도를 유지하면서 어떻게 투명한 이미지를 Windows 클립보드에 복사하여 붙여넣을 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!