Если вы получаете тот же фон в своей программе и Paint, то это говорит мне, что это как-то связано с Firefox, и, следовательно, это не обязательно ваша проблема.
Поскольку вы обеспокоены цветом фона, я думаю, что изображение, которое вы копируете, имеет прозрачные элементы. Так скажите мне: Какой цвет должен быть там? Изображение JPEG не может иметь прозрачные части, поэтому каждый пиксель должен иметь цвет. Firefox, по-видимому, выбирает черную там; как это не правильный выбор, а Internet Explorer?
Интересно, какой цвет фона вы получаете, когда вставляете в более подходящую графическую программу, чем Paint, например Gimp или Photoshop. Я ожидал бы, что эти программы рассмотрят несколько clipboard formats и выберите наиболее подходящий формат, чтобы они могли выбрать формат, который обеспечивает прозрачность, когда он доступен. С другой стороны, ваша программа и Paint, возможно, просто используют формат cf_Bitmap
, который, конечно же, не может иметь прозрачные пиксели, поэтому они получают то, что программа копирования использовала для заполнения пустого пространства.
Кстати, Firefox и Internet Explorer позволяют перетаскивать изображение непосредственно из браузера на рабочий стол или в другое окно папки, чтобы сохранить исходное изображение. Может быть, это делает вашу программу ненужной?
Итак, вопрос в том, как определить прозрачность в DIB? Firefox просто помещает DIB в буфер обмена. Исходным изображением является PNG. Я хотел бы знать, как я могу обнаружить в DIB, если он имеет прозрачность или нет. –
Если вы хотите уточнить свой вопрос, а затем отредактировать его. У вас недостаточно ретуширования для редактирования вопросов и ответов других людей, но вам всегда достаточно, чтобы редактировать свои собственные. –
Это ограничение в том, как Firefox копирует вещи в буфер обмена. –