2 回答

TA貢獻(xiàn)1805條經(jīng)驗 獲得超9個贊
這是另一種方法 - 使用類型斷言來斷言my_image具有SubImage方法。這適用于具有該方法的任何圖像類型SubImage(除Uniform快速掃描外的所有圖像)。這將返回Image一些未指定類型的另一個接口。
package main
import (
"fmt"
"image"
"image/jpeg"
"log"
"os"
)
func main() {
image_file, err := os.Open("somefile.jpeg")
if err != nil {
log.Fatal(err)
}
my_image, err := jpeg.Decode(image_file)
if err != nil {
log.Fatal(err)
}
my_sub_image := my_image.(interface {
SubImage(r image.Rectangle) image.Image
}).SubImage(image.Rect(0, 0, 10, 10))
fmt.Printf("bounds %v\n", my_sub_image.Bounds())
}
如果您想經(jīng)常這樣做,那么您可以SubImage使用接口創(chuàng)建一個新類型并使用它。
type SubImager interface {
SubImage(r image.Rectangle) image.Image
}
my_sub_image := my_image.(SubImager).SubImage(image.Rect(0, 0, 10, 10))
類型斷言的常見警告適用 -,ok如果您不想恐慌,請使用該表單。

TA貢獻(xiàn)1864條經(jīng)驗 獲得超2個贊
因為image.Image沒有方法SubImage。您需要使用類型斷言來獲取適當(dāng)?shù)膇mage.*類型。
rgbImg := img.(image.RGBA)
subImg := rgbImg.SubImage(...)
- 2 回答
- 0 關(guān)注
- 251 瀏覽
添加回答
舉報