2016-08-25 9 views
0

タイルパターンで画像を作成しようとしていますが、タイル画像には1ピクセルの透明な境界があるようです。私が白い背景画像だけを使用しても、私はまだ透明な境界を取得します。透明1pxの境界 tiled imagecolworWithPatternImageは1ピクセルの透明な境界線を返します

UIImage *patternImage=[UIImage imageNamed:@"whiteimage.png"]; 
CALayer *layer=[[CALayer alloc] init]; 
layer.frame=CGRectMake(0, 0, 2048, 1536); 
layer.backgroundColor=[UIColor colorWithPatternImage:patternImage].CGColor; 
UIView *view=[[UIView alloc] initWithFrame:CGRectMake(0,0,2048,1536)]; 
[view setOpaque:YES]; 
[view.layer addSublayer:layer]; 

パターン画像 pattern image

タイル張りの画像パターン画像をバイキュービックリサンプリングを使用してフォトショップからエクスポートされたが、私はまた、バイリニアと最近傍法を試してみました。また、私がPhotoshopのパターンとしてイメージを使用する場合、私はそれがiOS関連であると考えるように導く透明な境界線を取得しません。

+0

これは実際に使用しているパターン画像ですか?どのようにそれはとても大きいですか? –

+0

白いパターンのイメージはそれほど大きくする必要はありませんでしたが、使用しているサンプルのサイズは似ています。タイル張り画像は、透視変換が適用された床を形成するために使用されるので、床を埋めるためにはかなり大きくする必要があります。 – WagglyWonga

+0

上記のコードは私のためにうまくいきますが、他にイメージやビューに何をしていますか?例えばあなたの第2のイメージでは、タイル張りのイメージはどれくらい小さくなっていますか? –

答えて

0
-(UIImage*) resizeImage:(UIImage*)image newSize:(CGSize)newSize 
{ 
     UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0); 
     [image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)]; 
     UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); 
     UIGraphicsEndImageContext();  
     return newImage; 
} 

私のヘルパーメソッドを私の質問に含めるのを忘れました。私に問題を与えていたのはこの方法でした。ピクセルで幅と高さを増やすと、返された画像に透明な境界線が表示されなくなりました。

-(UIImage*) resizeImage:(UIImage*)image newSize:(CGSize)newSize 
{ 
     UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0); 
     [image drawInRect:CGRectMake(0, 0, newSize.width+1, newSize.height+1)]; 
     UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); 
     UIGraphicsEndImageContext();  
     return newImage; 

} 
関連する問題