이미지를 클립보드에 복사할 때 투명성을 유지하는 방법
문제: 투명한 PNG 이미지를 클립보드에 복사할 때 투명도가 손실되는 경우가 많습니다.
이유:
해결책:
<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 pngMemoryStream = new MemoryStream()) using (MemoryStream dibMemoryStream = new MemoryStream()) { // 将图像以PNG、DIB和标准位图格式放入剪贴板 ... (代码省略,篇幅所限) Clipboard.SetDataObject(data, true); } }</code>
투명도를 지원하는 이미지를 클립보드에 넣는 가장 안정적인 방법은 PNG 스트리밍을 사용하는 것입니다.
<code class="language-c#">byte[] bm32bData = ImageUtils.GetImageData(bm32b, out stride); // PNG格式的线条是反向的。 bm32b.RotateFlip(RotateFlipType.Rotate180FlipX); data.SetData("PNG", false, pngMemoryStream);</code>
클립보드에서 이미지를 검색할 때 PNG, DIB, 비트맵, 이미지 순서로 다양한 데이터 형식을 확인하세요.
<code class="language-c#">public static Bitmap GetClipboardImage(DataObject retrievedData) { Bitmap clipboardimage = null; // 顺序:尝试PNG,然后尝试32位ARGB DIB,再尝试普通的位图和图像类型。 ... (代码省略,篇幅所限) return clipboardimage; }</code>
<code class="language-c#">public static Bitmap ImageFromClipboardDib(Byte[] dibBytes) { if (dibBytes == null || dibBytes.Length </code>
추가 도구:
이러한 방법을 채택하면 이미지 투명도를 보다 효율적으로 처리하고 클립보드에 복사하는 동안 투명도 정보 손실을 방지할 수 있습니다.
위 내용은 이미지를 Windows 클립보드에 복사할 때 투명도를 유지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!