Я здесь совершенно не уверен:
Image i=some image...
Bitmap B=(Bitmap)i;
B теперь указывает на тот же объект, что и i. Я сбит с толку ... Я бы сказал, что Bitmap B будет указывать на новый экземпляр Image, преобразованный в растровое изображение, но это, очевидно, не так. Тогда я просто не понимаю, как это здесь работает.