Как делает Java Graphics.drawImage (), работают и какова роль ImageObserver

Вот официальное решение Microsoft, чтобы программно изменить почтовый клиент по умолчанию. Это - Visual Basic, но я надеюсь, что понятие ясно из этого:

http://support.microsoft.com/kb/299853

20
задан peter.murray.rust 6 November 2009 в 00:30
поделиться

4 ответа

Вы можете обойтись без Graphics.drawImage (img, x, y, null) [или аналогичного]. Параметр ImageObserver - это функция обратного вызова, информирующая вас о ходе операции рисования; и действительно полезен только в том случае, если вы загружаете параметр изображения асинхронно.

Для большей ясности, если вы вызовете drawImage с неполностью загруженным изображением, он:

  1. вернет false (немедленно)
  2. нарисуйте как можно больше изображения (все, что загружено)
  3. и, в какой-то момент в будущем, вызовите ImageObserver , когда станет доступно больше изображений

В основном, если вы работаете с изображениями в памяти (загруженными из файловой системы или созданными вашей программой), не беспокойтесь о параметре ImageObserver .

26
ответ дан 30 November 2019 в 00:09
поделиться

Объекты изображения не обязательно полностью загружены. Если Graphics.drawImage вызывается на неполном изображении, он будет рисовать столько изображения, сколько может, а затем предупредит ImageObserver (путем вызова imageUpdate ) когда загружается больше изображений.

ImageObserver может иметь значение null, и в этом случае вы не получите никакого уведомления. Это обычное явление, если известно, что изображения загружены, или если уже существует другой механизм, выполняющий перерисовку.

Обратите внимание, что Компонент реализует ImageObserver и его imageUpdate ] вызовет перерисовку пораженной области.

8
ответ дан 30 November 2019 в 00:09
поделиться

На самом деле я использовал drawImage () много раз, всегда с параметром ImageObserver , установленным на null . Хорошо, это не значит, что это бесполезно, но я сделал все, что мне нужно, не зная, как его использовать ..

1
ответ дан 30 November 2019 в 00:09
поделиться

Как сообщали другие, этот API был задуман, когда Предполагалось, что изображения, которые будут отображаться, будут загружены по сети. Когда вы просите набор инструментов загрузить изображение, предполагается, что это всего лишь оболочка и что байты, необходимые для определения его размера и пикселей, все еще ползут по сети.

В этом случае drawImage может ничего не отображать, когда он вызывается первым. Когда размер и пиксели становятся доступными, ImageObserver получает уведомление. В случае Component реализует ImageObserver , его поведение заключается в перерисовке, когда данные доступны.

этот API был задуман, когда предполагалось, что изображения, которые будут отображаться, будут загружаться по сети. Когда вы просите набор инструментов загрузить изображение, предполагается, что это всего лишь оболочка и что байты, необходимые для определения его размера и пикселей, все еще ползут по сети.

В этом случае drawImage может ничего не отображать, когда он вызывается первым. Когда размер и пиксели становятся доступными, ImageObserver получает уведомление. В случае Component реализует ImageObserver , его поведение заключается в перерисовке, когда данные доступны.

этот API был задуман, когда предполагалось, что изображения, которые будут отображаться, будут загружаться по сети. Когда вы просите набор инструментов загрузить изображение, предполагается, что это всего лишь оболочка и что байты, необходимые для определения его размера и пикселей, все еще ползут по сети.

В этом случае drawImage может ничего не отображать, когда он вызывается первым. Когда размер и пиксели становятся доступными, ImageObserver получает уведомление. В случае Компонент реализует ImageObserver , его поведение заключается в перерисовке, когда данные доступны.

В этом случае drawImage может ничего не отображать при первом вызове. Когда размер и пиксели становятся доступными, ImageObserver получает уведомление. В случае Component реализует ImageObserver , его поведение заключается в перерисовке, когда данные доступны.

В этом случае drawImage может ничего не отображать при первом вызове. Когда размер и пиксели становятся доступными, ImageObserver получает уведомление. В случае Component реализует ImageObserver , его поведение заключается в перерисовке, когда данные доступны.

1
ответ дан 30 November 2019 в 00:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: