Я на самом деле тщательно исследовал тему прозрачности в буфере обмена Windows, поэтому, хотя я не очень разбираюсь в javascript, я могу помочь вам вместе с принципами.
Буфер обмена работает с системой строковых идентификаторов для их типов буфера обмена, и вы можете поместить несколько таких типов в буфер обмена одновременно. В последние годы многие приложения (включая MS Office и Gimp) начали использовать тип "PNG" для прозрачных изображений, который будет содержать необработанный поток байтов с байтами для изображения png.
Тем не менее, гораздо более часто используемым является формат DIB с идентификатором буфера обмена «DeviceIndependentBitmap», который может быть ... проблематичным. Как и в формате PNG, это необработанный поток байтов, но формат файла немного беспорядочный. Для получения дополнительной информации о формате DIB я советую вам прочитать этот вопрос и ответ, который я дал на него , а также Независимые от устройства растровые спецификации и BITMAPINFOHEADER struct на MSDN. Короче говоря, это 32-битный формат RGB, который злоупотребляет как (а иногда и ошибочно) ARGB. Я понятия не имею, насколько правдоподобно анализировать DIB в пригодное для использования изображение в Javascript, однако многие программы (включая Google Chrome), похоже, используют его в качестве только прозрачного формата изображения, который они помещают в буфер обмена при копировании изображения.
Для полной поддержки прозрачного вставки вам, вероятно, потребуется поддержка форматов PNG и DIB (и, учитывая проблемы и разногласия, связанные с DIB, предпочтительно в таком порядке). Этот ответ может дать больше информации об общем методе просеивания через буфер обмена и синтаксического анализа изображений PNG и DIB, хотя это код C #, а не Javascript.