Вы рисуете текст или изображение первым?
Если вы рисуете изображение первым, проблем не должно быть:
http://jsfiddle.net/NAanu/
Если вы рисуете текст первым, вам нужно очистить тень, чтобы картинка не прорисовывалась вместе с ней. Вот пример рисования текста сначала с тенью:
http://jsfiddle.net/NAanu/1/
Я использую функцию сохранения и восстановления, чтобы сохранить и очистить состояние тени из контекста. Вместо этого вы можете просто установить для них все значения по умолчанию.
Когда вы устанавливаете свойства для контекста, вы должны думать об этом как о загрузке кисти с краской.
Установка любого свойства контекста, например, shadowColor
для красного цвета, похожа на загрузку красной краски на край вашей кисти. Все, что вы рисуете, будет иметь красный цвет.
Единственный способ остановить это - очистить вашу кисть (установить цвет и shadowOffset обратно на их значения по умолчанию) или использовать save()
и restore()
, что говорит «помните, что моя кисть когда-то была чистой, поэтому позже Я могу вспомнить эту чистую кисть, чтобы использовать снова ".