Upgrade to Pro — share decks privately, control downloads, hide ads and more …

5分ぐらいで分かる、トリミング機能の作り方

筒井巧
November 20, 2024

 5分ぐらいで分かる、トリミング機能の作り方

筒井巧

November 20, 2024
Tweet

Other Decks in Programming

Transcript

  1. P y x 画像からみた点Pの座標:点P(300,500) トリミング範囲の中⼼座標:点P(150,250) トリミング範囲の中⼼座標:点P(100,150) 拡⼤! 描画⾼さ:300 描画横幅:200 画像サイズ

    400x600 画像からみた点Pの座標:??? y x 描画⾼さ:300 描画横幅:200 P トリミング範囲の調整機能とは > トリミング範囲の動き⽅>普通にやると⾯倒?
  2. P y x 画像からみた点Pの座標:点P(300,500) トリミング範囲の中⼼座標:点P(150,250) トリミング範囲の中⼼座標:点P(100,150) 拡⼤! 描画⾼さ:300 描画横幅:200 画像サイズ

    400x600 画像からみた点Pの座標:??? y x 描画⾼さ:300 描画横幅:200 P トリミング範囲の調整機能とは > トリミング範囲の動き⽅>普通にやると⾯倒?
  3. P y x 画像からみた点Pの座標:点P(300,500) トリミング範囲の中⼼座標:点P(150,250) トリミング範囲の中⼼座標:点P(100,150) 拡⼤! 描画⾼さ:300 描画横幅:200 画像サイズ

    400x600 画像からみた点Pの座標:??? y x 描画⾼さ:300 描画横幅:200 P いちいち計算するのは⾯倒(拡⼤率, 回転状態 etc...) トリミング範囲の調整機能とは > トリミング範囲の動き⽅>普通にやると⾯倒?
  4. P y x 画像からみた点Pの座標:点P(300,500) トリミング範囲の中⼼座標:点P(150,250) トリミング範囲の中⼼座標:点P(100,150) 拡⼤! 描画⾼さ:300 描画横幅:200 画像サイズ

    400x600 画像からみた点Pの座標:??? y x 描画⾼さ:300 描画横幅:200 P どうすれば楽になる? トリミング範囲の調整機能とは > トリミング範囲の動き⽅>普通にやると⾯倒?
  5. P y x 画像からみた点Pの座標:点P(300,500) 描画する座標:点P(150,250) 描画する座標:点P(100,150) 拡⼤! 描画⾼さ:300 描画横幅:200 画像サイズ

    400x600 画像からみた点Pの座標:??? y x 描画⾼さ:300 描画横幅:200 P トリミング範囲の調整機能とは > トリミング範囲の動き⽅>普通にやると⾯倒?
  6. // ズーム前 imageView.bounds = (0.0, 0.0, 750.0, 982.0) imageView.frame =

    (0.0, 0.0, 402.44142607128356, 526.9299738693339) // ズーム後 imageView.bounds = (0.0, 0.0, 750.0, 982.0) imageView.frame = (0.0, 0.0, 1299.288755747131, 1701.2020775249102) imageView.bounds.size(画像本来の⼤きさ)は変更されず、 scrollView.contentSize(imageView.frame.size)が更新される ズーム前 ズーム後 =画像の中のどこにあるかという情報(imageViewのローカル座標)は変更しない トリミング範囲の調整機能とは > トリミング範囲の動き⽅>UIScrollViewのズーム処理について
  7. P y x 画像からみた点Pの座標:点P(300,500) 描画する座標:点P(150,250) 描画する座標:点P(100,150) 拡⼤! 描画⾼さ:300 描画横幅:200 画像サイズ

    400x600 画像からみた点Pの座標:点P(300,500) y x 描画⾼さ:300 描画横幅:200 P トリミング範囲の調整機能とは > トリミング範囲の動き⽅>簡単にトリミング範囲を再描画しよう
  8. P y x 画像からみた点Pの座標:点P(300,500) 描画する座標:点P(150,250) 描画する座標:点P(100,150) 拡⼤! 描画⾼さ:300 描画横幅:200 画像サイズ

    400x600 画像からみた点Pの座標:点P(300,500) この変わらない座標を⽤いてトリミング範囲を再描画する y x 描画⾼さ:300 描画横幅:200 P トリミング範囲の調整機能とは > トリミング範囲の動き⽅>簡単にトリミング範囲を再描画しよう
  9. P y x y x 描画⾼さ:300 描画横幅:200 P 画像からみた点Pの座標:点P(300,500) 描画する座標:点P(150,250)

    描画する座標:点P(100,150) 拡⼤! 描画⾼さ:300 描画横幅:200 画像サイズ 400x600 トリミング範囲の調整機能とは > トリミング範囲の動き⽅>簡単にトリミング範囲を再描画しよう
  10. P y x y x 描画⾼さ:300 描画横幅:200 P 描画する座標:点P(150,250) 描画する座標:点P(100,150)

    拡⼤! 描画⾼さ:300 描画横幅:200 画像サイズ 400x600 画像からみた点Pの座標:点P(300,500) トリミング範囲の調整機能とは > トリミング範囲の動き⽅>簡単にトリミング範囲を再描画しよう
  11. P y x y x 描画⾼さ:300 描画横幅:200 画像からみた点Pの座標:点P(300,500) 描画する座標:点P(150,250) 描画する座標:点P(100,150)

    拡⼤! 描画⾼さ:300 描画横幅:200 画像サイズ 400x600 変わらない 画像の描画 更新 トリミング範囲の調整機能とは > トリミング範囲の動き⽅>簡単にトリミング範囲を再描画しよう
  12. P y x y x 描画⾼さ:300 描画横幅:200 P 描画する座標:点P(150,250) 描画する座標:点P(100,150)

    拡⼤! 描画⾼さ:300 描画横幅:200 画像サイズ 400x600 画像からみた点Pの座標:点P(300,500) トリミング範囲の調整機能とは > トリミング範囲の動き⽅>簡単にトリミング範囲を再描画しよう
  13. P y x y x 描画⾼さ:300 描画横幅:200 P 描画する座標:点P(150,250) 描画する座標:点P(100,150)

    拡⼤! 描画⾼さ:300 描画横幅:200 画像サイズ 400x600 画像からみた点Pの座標:点P(300,500) トリミング範囲の調整機能とは > トリミング範囲の動き⽅>簡単にトリミング範囲を再描画しよう