示例#1
0
func storeImg(img io.Reader, id string, store *storage.Store) bool {
	/* open the files */
	fBig, err := store.Create(id, COVER_FILE)
	if err != nil {
		log.Error("Error creating cover ", id, ": ", err.Error())
		return false
	}
	defer fBig.Close()

	fSmall, err := store.Create(id, COVER_SMALL_FILE)
	if err != nil {
		log.Error("Error creating small cover ", id, ": ", err.Error())
		return false
	}
	defer fSmall.Close()

	/* resize img */
	var img2 bytes.Buffer
	img1 := io.TeeReader(img, &img2)
	jpgOptions := jpeg.Options{IMG_QUALITY}
	imgResized, err := resizeImg(img1, IMG_WIDTH_BIG)
	if err != nil {
		log.Error("Error resizing big image: ", err.Error())
		return false
	}
	err = jpeg.Encode(fBig, imgResized, &jpgOptions)
	if err != nil {
		log.Error("Error encoding big image: ", err.Error())
		return false
	}
	imgSmallResized, err := resizeImg(&img2, IMG_WIDTH_SMALL)
	if err != nil {
		log.Error("Error resizing small image: ", err.Error())
		return false
	}
	err = jpeg.Encode(fSmall, imgSmallResized, &jpgOptions)
	if err != nil {
		log.Error("Error encoding small image: ", err.Error())
		return false
	}
	return true
}