2016-10-04 14 views
0

で規模:)方法が私の目的である、私は750の画像幅を持っていると私は128 にそれを拡張したいそれから私はUIImageのinitメソッドが init(data:scale:)(データ:ここスウィフト3.0

と呼ばれました

次は

func scaleImage(image:UIImage, ToSpecificWidth targetWidth:Int) -> UIImage{ 
     var scale = Double(targetWidth)/Double(image.size.width) 
     let scaledImage = UIImage(data: UIImagePNGRepresentation(image)! as Data, scale: CGFloat(scale)) 
     return scaledImage! 
} 

print("originImageBeforeWidth: \(portrait?.size.width)") // output: 750 
let newImage = Tools.scaleImage(image: portrait!, ToSpecificWidth: 128) // the scale is about 0.17 
print("newImageWidth: \(newImage.size.width)") // output: 4394.53125 

どうやら新しい幅が離れすぎて私の意図 からである私は750 * 0.17 = 128 を探しています。しかし、私は= 4394 750/0.17

を得る私のコードです0

その後、私はここに私のscaleImage funcを は私がしたい正確に何ですが、コードスケール= 1 /スケールが起こっている

何意味をなさない更新されたコード

func scaleImage(image:UIImage, ToSpecificWidth targetWidth:Int) -> UIImage{ 
     var scale = Double(targetWidth)/Double(image.size.width) 
     scale = 1/scale // new added 
     let scaledImage = UIImage(data: UIImagePNGRepresentation(image)! as Data, scale: CGFloat(scale)) 
     return scaledImage! 
} 

print("originImageBeforeWidth: \(portrait?.size.width)") // output: 750 
let newImage = Tools.scaleImage(image: portrait!, ToSpecificWidth: 128) // the scale is about 5.88 
print("newImageWidth: \(newImage.size.width)") // output: 128 

ある変更ここに?

+0

http://stackoverflow.com/questions/31314412/how-to-resize-image-in-swiftこれをチェックする –

答えて

1

initの方法は、画像のサイズを変更する目的ではありません。 scaleパラメータはリサイズスケールではありません。 1x、2x、3xのスケールです。基本的に、scaleの唯一の有効な値は、現在1.0,2.0、または3.0です。

scaleを期待した値の逆数に設定すると、希望の結果を返すsizeプロパティが返されますが、これは実行する必要がありません。

How to Resize image in Swift?などの画像のサイズを変更するには、適切な方法があります。

関連する問題