1

トリミングされた CGImage を取得する必要があります。一部の色の周りに空のスペース (アルファ = 0) がある画像があり、表示されている色のみのサイズを取得するためにトリミングする必要があります。

ありがとう。

4

1 に答える 1

0

これを行うには 3 つの方法があります。

1)Photoshop(または選択した画像エディタ)を使用して画像を編集します-これはできないと思います。答えが明白すぎます。

2) 無視してください - 無視してフルサイズの画像を描いてください。透明なので、ユーザーは決して気付かないでしょう。

3) アルファ値が 0 を超えるピクセルになるまで、画像内の各ピクセルを通過するコードを記述します。これにより、上からトリミングする行数が得られます。ただし、これにより UI が遅くなるため、バックグラウンド スレッドで実行することをお勧めします。

例えば

// 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 を中央に設定してトリミングを行います :)

于 2011-02-10T15:45:23.950 に答える