Есть три способа сделать это:
1) Используйте Photoshop (или графический редактор по вашему выбору), чтобы отредактировать изображение - я полагаю, вы не можете сделать это, это слишком очевидный ответ!
2) Игнорировать это - почему бы просто не проигнорировать это, нарисовать изображение в полном размере? Он прозрачен, поэтому пользователь никогда не заметит.
3) Напишите некоторый код, который проходит через каждый пиксель изображения, пока не дойдет до того, который имеет альфа-значение> 0. Это должно дать вам количество строк, которые нужно обрезать сверху. Однако это замедлит ваш пользовательский интерфейс, поэтому вы можете захотеть сделать это в фоновом потоке.
, например
// To get the number of transparent rows at the top of the image
// Sorry this code is so ugly
uint32 *p = start_of_image;
while ( 0 == *p & 0x000000ff && p < end_of_image_data) ++p;
uint number_of_white_rows_at_top = (p - start_of_image) / width_of_image;
Когда вы знаете количество прозрачного пространства вокруг изображения, вы можете нарисовать его с помощью UIImageView, установите renderMode в центр и позвольте ему выполнить обрезку за вас:)