Безопасно ли избавляться от Icon после вызова Icon.ToBitmap ()? - PullRequest
3 голосов
/ 19 февраля 2009

После вызова System.Drawing.Icon.ToBitmap() для создания изображения, безопасно ли утилизировать оригинал Icon?

Ответы [ 3 ]

6 голосов
/ 19 февраля 2009

Метод преобразует Icon в новый объект Bitmap, поэтому ссылки с Bitmap на Icon.

не будут.

Так что да, безопасно утилизировать Icon.

4 голосов
/ 19 февраля 2009

Да. Icon.ToBitmap рисует значок в новом растровом объекте, поэтому впоследствии его можно безопасно утилизировать.

Edit:
Смотреть на метод Icon.ToBitmap () в Reflector было интересно. Я ожидал, что это будет простой вызов Graphics.DrawImage или Graphics.DrawIcon, но он более сложный. Пока это возможно, функция вместо этого будет делать копию данных изображения значка в памяти, но она вернется к вызову Graphics.DrawImage или Graphics.DrawIcon, если не сможет выполнить копирование. Копирование памяти происходит намного быстрее, поэтому это, очевидно, и является причиной, но это делает код намного труднее для чтения.

0 голосов
/ 19 февраля 2009

Да. Если вам больше не нужен значок и где-то хранится растровое изображение, все в порядке.

...