Мне не ясно, как работают SKBitmap.InstallPixels()
и SKBitmap.SetPixels()
. Вот документация для каждого метода (есть несколько перегрузок метода):
// Summary:
// Installs the specified pixels into the bitmap.
//
// Parameters:
// info:
// The image information describing the pixels.
//
// pixels:
// The pixels to install.
//
// Returns:
// Returns true on success, or false on failure. If there was an error, the bitmap
// will be set to empty.
public bool InstallPixels(SKImageInfo info, IntPtr pixels);
// Summary:
// Replaces the current pixel address for the bitmap.
//
// Parameters:
// pixels:
// The new pixel address.
public void SetPixels(IntPtr pixels);
Я предполагаю, что InstallPixels()
копирует данные из IntPtr
в локальный байтовый массив, тогда как SetPixels()
делает переданный IntPtr
массив байтов для использования.
Если мое предположение верно, значит ли это, что если я хочу использовать InstallPixels()
, мне нужно сначала вызвать TryAllocPixels()
, чтобы создать внутренний байтовый массив ? Если я хочу использовать SetPixels()
, нужно ли вручную удалять байтовый массив или он удаляется при удалении SKBitmap
?