15

私は次のものを持っています:

  1. 背景画像(バイ)
  2. 画像1 (i1)
  3. 画像3 (i2)

i1 と i2 を bi 上に角度を付けて配置し、最終的な画像を生成したいと考えています。i1 と i2 の x 軸と y 軸の値と、予想される回転角度があります。i1 と i2 は部分的に重なる場合があります。しかし、i1 と i2 の z インデックスを知っておく必要があります。それらがオーバーラップした場合、誰がフォアグラウンドになるかを知っています。

私はGolangでこれを達成しようとしています。
http://golang.org/doc/articles/image_draw.htmlはこれを行うようです。誰もが役立つかもしれないコードの同様の例を知っています。または、疑似プログラムとして Golang の行をいくつか見せてもらえますか?

ありがとう。

4

1 に答える 1

40

あなたが何を探しているのか正確にはわかりませんし、画像パッケージをまったく扱っていません...しかし、サンプルコードに従ってgraphics-goパッケージを使用するだけで(私にとってはうまくいきます)、私はで何かをすることができました少しでも。

package main

import (
    "fmt"
    "os"
    "image/draw"
    "image"
    "image/jpeg"
    "code.google.com/p/graphics-go/graphics"
)

func main() {
    fImg1, _ := os.Open("arrow1.jpg")
    defer fImg1.Close()
    img1, _, _ := image.Decode(fImg1)

    fImg2, _ := os.Open("arrow2.jpg")
    defer fImg2.Close()
    img2, _, _ := image.Decode(fImg2)

    m := image.NewRGBA(image.Rect(0, 0, 800, 600))
    draw.Draw(m, m.Bounds(), img1, image.Point{0,0}, draw.Src)
    //draw.Draw(m, m.Bounds(), img2, image.Point{-200,-200}, draw.Src)
    graphics.Rotate(m, img2, &graphics.RotateOptions{3.5})

    toimg, _ := os.Create("new.jpg")
    defer toimg.Close()

    jpeg.Encode(toimg, m, &jpeg.Options{jpeg.DefaultQuality})
}
于 2012-09-15T02:43:13.790 に答える