Черный фон при копировании изображения из Firefox - PullRequest
4 голосов
/ 24 мая 2009

Изображение копируется из Firefox в буфер обмена. Моя программа получает его из буфера обмена и сохраняет как изображение в формате JPEG. По какой-то причине изображение сохраняется на черном фоне. Если я открою тот же URL в IE и скопирую изображение в буфер обмена, это изображение будет правильно сохранено моей программой. Я использую Delphi 7.

Я также пытался скопировать изображение из Firefox в Microsoft Paint и снова черный фон. У кого-нибудь есть совет, как справиться с такой проблемой.

Ответы [ 3 ]

2 голосов
/ 24 мая 2009

Я предполагаю, что оригинальное изображение прозрачно? Если это так, вы должны знать, что JPEG не может обрабатывать прозрачность. Попробуйте переключить тип выходного изображения и посмотрите, исчезнет ли ваша программа волшебным образом.

1 голос
/ 19 января 2012

Я знаю, что это немного старый вопрос, но я только что столкнулся с той же проблемой в Firefox v9.

Используйте следующий обходной путь: сохраните изображение на вашем компьютере, затем скопируйте файл в проводнике и вставьте в программу, которую вы хотите использовать (в моем случае я вставил в слово).

1 голос
/ 24 мая 2009

Если вы получаете такой же фон в вашей программе и Paint, то это говорит мне, что это как-то связано с Firefox, и, следовательно, это не обязательно ваша проблема для решения.

Поскольку вы беспокоитесь о цвете фона, я думаю, что копируемое изображение содержит прозрачные элементы. Так скажите мне: какого цвета должен быть там? Изображение JPEG не может иметь прозрачных частей, поэтому каждый пиксель должен иметь некоторый цвет. Firefox, видимо, предпочитает ставить черный там; как это не правильный выбор и Internet Explorer?

Интересно, какой цвет фона вы получаете, когда вставляете в более мощную графическую программу, чем Paint, такую ​​как Gimp или Photoshop. Я ожидал бы, что эти программы рассмотрят несколько форматов буфера обмена и выберут наиболее подходящий формат, чтобы они могли выбрать формат, обеспечивающий прозрачность, когда он доступен. С другой стороны, ваша программа и Paint, вероятно, просто используют формат cf_Bitmap, который, конечно, не может иметь прозрачных пикселей, поэтому они получают все, что копировальная программа выбрала для заполнения пустого пространства.

Кстати, и Firefox, и Internet Explorer позволяют перетаскивать изображение прямо из браузера на рабочий стол или в другое окно папки, чтобы сохранить исходное изображение. Может быть, это делает вашу программу ненужной?

...