本文整理汇总了Golang中github.com/ctripcorp/nephele/imgsvr/img4g.Image类的典型用法代码示例。如果您正苦于以下问题:Golang Image类的具体用法?Golang Image怎么用?Golang Image使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Image类的19个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: Process
func (this *FormatProcessor) Process(img *img4g.Image) error {
log.WithFields(log.Fields{
"format": this.Format,
}).Debug("process format")
err := img.SetFormat(this.Format)
return err
}
开发者ID:shitfSign,项目名称:nephele,代码行数:7,代码来源:formatprocessor.go
示例2: getLocation
func getLocation(location int, img *img4g.Image, logo *img4g.Image) (int64, int64, error) {
var (
x int64 = 0
y int64 = 0
)
width, height, err := img.Size()
if err != nil {
return 0, 0, err
}
logowidth, logoheight, err := logo.Size()
if err != nil {
return 0, 0, err
}
switch location {
case 1:
x, y = 0, 0
case 2:
x, y = (width-logowidth)/2, 0
case 3:
x, y = width-logowidth, 0
case 4:
x, y = 0, (height-logoheight)/2
case 5:
x, y = (width-logowidth)/2, (height-logoheight)/2
case 6:
x, y = width-logowidth, (height-logoheight)/2
case 7:
x, y = 0, height-logoheight
case 8:
x, y = (width-logowidth)/2, height-logoheight
case 9:
x, y = width-logowidth, height-logoheight
}
return x, y, nil
}
开发者ID:zesus19,项目名称:nephele,代码行数:35,代码来源:watermarkprocessor.go
示例3: Process
func (this *QualityProcessor) Process(img *img4g.Image) error {
log.WithFields(log.Fields{
"quality": this.Quality,
}).Debug("process quality")
err := img.SetCompressionQuality(this.Quality)
return err
}
开发者ID:shitfSign,项目名称:nephele,代码行数:7,代码来源:qualityprocessor.go
示例4: Process
func (this *WaterMarkProcessor) Process(img *img4g.Image) error {
l4g.Debug("process watermark")
var err error = nil
tran := this.Cat.NewTransaction(Image, "Watermark")
defer func() {
this.Logo.DestoryWand()
tran.SetStatus(err)
tran.Complete()
}()
this.Logo.CreateWand()
if this.Location == 0 {
this.Location = 9
}
if this.Location < 1 || this.Location > 9 {
err = errors.New("Logo location(" + string(this.Location) + ") isn't right!")
return err
}
var x, y int64
x, y, err = getLocation(this.Location, img, this.Logo)
if err != nil {
return err
}
if this.Dissolve > 0 && this.Dissolve < 100 {
this.Logo.Dissolve(this.Dissolve)
}
err = img.Composite(this.Logo, x, y)
return err
}
开发者ID:zesus19,项目名称:nephele,代码行数:31,代码来源:watermarkprocessor.go
示例5: Process
func (p *ScaleProcessor) Process(img *img4g.Image) error {
l4g.Debug("process scale")
var err error
tran := cat.Instance().NewTransaction(Image, "Scale")
defer func() {
tran.SetStatus(err)
tran.Complete()
}()
err = img.Resize(p.Width, p.Height)
return err
}
开发者ID:zesus19,项目名称:nephele,代码行数:11,代码来源:scaleprocessor.go
示例6: Process
func (this *QualityProcessor) Process(img *img4g.Image) error {
l4g.Debug("process quality")
var err error
tran := this.Cat.NewTransaction(Image, "Quality")
defer func() {
tran.SetStatus(err)
tran.Complete()
}()
err = img.SetCompressionQuality(this.Quality)
return err
}
开发者ID:zesus19,项目名称:nephele,代码行数:11,代码来源:qualityprocessor.go
示例7: Process
func (this *StripProcessor) Process(img *img4g.Image) error {
l4g.Debug("process strip")
var err error
tran := this.Cat.NewTransaction(Image, "Strip")
defer func() {
tran.SetStatus(err)
tran.Complete()
}()
err = img.Strip()
return err
}
开发者ID:zesus19,项目名称:nephele,代码行数:11,代码来源:stripprocessor.go
示例8: Process
func (this *FormatProcessor) Process(img *img4g.Image) error {
l4g.Debug("process format")
var err error
tran := this.Cat.NewTransaction(Image, "Format")
defer func() {
tran.SetStatus(err)
tran.Complete()
}()
err = img.SetFormat(this.Format)
return err
}
开发者ID:zesus19,项目名称:nephele,代码行数:11,代码来源:formatprocessor.go
示例9: Process
func (this *RotateProcessor) Process(img *img4g.Image) error {
l4g.Debug("process rotate ")
var err error
tran := this.Cat.NewTransaction(Image, "Rotate")
defer func() {
tran.SetStatus(err)
tran.Complete()
}()
err = img.Rotate(this.Degress)
return err
}
开发者ID:zesus19,项目名称:nephele,代码行数:11,代码来源:rotateprocessor.go
示例10: Process
func (this *ResizeRProcessor) Process(img *img4g.Image) error {
log.Debug("process resize r")
var err error
tran := this.Cat.NewTransaction("Command", "ResizeR")
defer func() {
tran.SetStatus(err)
tran.Complete()
}()
var width, height int64
width, height, err = img.Size()
if err != nil {
return err
}
if width <= this.Width && height <= this.Height {
return nil
}
var (
x int64 = 0
y int64 = 0
w int64 = width
h int64 = height
)
if width > this.Width && height > this.Height {
p1 := float64(this.Width) / float64(this.Height)
p2 := float64(width) / float64(height)
w = 0
h = 0
if math.Abs(p1-p2) > 0.0001 {
if p2 > p1 { //以高缩小
h = height
w = int64(math.Floor(float64(h) * p1))
x = (width - w) / 2
}
if p2 < p1 { //以宽缩小
w = width
h = int64(math.Floor(float64(w) / p1))
y = (height - h) / 2
}
err = img.Crop(w, h, x, y)
if err != nil {
return err
}
}
err = img.Resize(this.Width, this.Height)
return err
} else {
if width > this.Width {
x = (w - this.Width) / 2
w = this.Width
}
if height > this.Height {
y = (h - this.Height) / 2
h = this.Height
}
err = img.Crop(w, h, x, y)
return err
}
}
开发者ID:chenbk85,项目名称:nephele,代码行数:59,代码来源:resize_r.go
示例11: Process
func (this *DigitalWatermarkProcessor) Process(img *img4g.Image) error {
log.Debug("process digitalwatermark")
var err error = nil
format, err := img.GetFormat()
if err != nil {
return err
}
if strings.ToLower(format) != "jpg" && strings.ToLower(format) != "jpeg" {
info := make(map[string]string)
info["format"] = format
logEvent(this.Cat, "DigitalWatermarkRefuse", "NotSupportFormat", info)
return nil
}
width, err := img.GetWidth()
if err != nil {
return err
}
if width < 256 {
info := make(map[string]string)
info["width"] = strconv.Itoa(int(width))
logEvent(this.Cat, "DigitalWatermarkRefuse", "NotSupportSize", info)
return nil
}
height, err := img.GetHeight()
if err != nil {
return err
}
if height < 256 {
info := make(map[string]string)
info["height"] = strconv.Itoa(int(height))
logEvent(this.Cat, "DigitalWatermarkRefuse", "NotSupportSize", info)
return nil
}
upr := ((int(math.Min(float64(width), float64(height))) / 100.0) + 1) * 100
tran := this.Cat.NewTransaction("DigitalWatermark", "Min(width, height)<"+strconv.Itoa(int(upr)))
tran.AddData("size", "width: "+strconv.Itoa(int(width))+"height: "+strconv.Itoa(int(height)))
defer func() {
this.Copyright.DestoryWand()
tran.SetStatus(err)
tran.Complete()
}()
if err = this.Copyright.CreateWand(); err != nil {
return err
}
err = img.DigitalWatermark(this.Copyright)
return err
}
开发者ID:cannonhuang,项目名称:nephele,代码行数:52,代码来源:digitalwatermarkprocessor.go
示例12: Process
//高固定,宽(原图比例计算),宽固定,高(原图比例计算) (压缩)
func (this *ResizeWProcessor) Process(img *img4g.Image) error {
l4g.Debug("process resize w")
var err error
tran := this.Cat.NewTransaction(Image, "ResizeW")
defer func() {
tran.SetStatus(err)
tran.Complete()
}()
var width, height int64
width, height, err = img.Size()
if err != nil {
return err
}
if width <= this.Width && height <= this.Height {
return nil
}
z := ResizeZProcessor{this.Width, this.Height, this.Cat, width, height}
err = z.Process(img)
return err
}
开发者ID:zesus19,项目名称:nephele,代码行数:21,代码来源:resizewprocessor.go
示例13: Process
func (this *ResizeRProcessor) Process(img *img4g.Image) error {
l4g.Debug("process resize r")
var err error
tran := this.Cat.NewTransaction(Image, "ResizeR")
defer func() {
tran.SetStatus(err)
tran.Complete()
}()
var width, height int64
width, height, err = img.Size()
if err != nil {
return err
}
if width <= this.Width && height <= this.Height {
return nil
}
if width > this.Width && height > this.Height {
c := ResizeCProcessor{this.Width, this.Height, this.Cat, width, height}
err = c.Process(img)
return err
}
var (
x int64 = 0
y int64 = 0
w int64 = width
h int64 = height
)
if width > this.Width {
x = (w - this.Width) / 2
w = this.Width
}
if height > this.Height {
y = (h - this.Height) / 2
h = this.Height
}
err = img.Crop(w, h, x, y)
return err
}
开发者ID:zesus19,项目名称:nephele,代码行数:38,代码来源:resizerprocessor.go
示例14: Process
//高固定,宽(原图比例计算),宽固定,高(原图比例计算) (压缩)
func (this *ResizeWProcessor) Process(img *img4g.Image) error {
log.Debug("process resize w")
var err error
tran := this.Cat.NewTransaction("Command", "ResizeW")
defer func() {
tran.SetStatus(err)
tran.Complete()
}()
var width, height int64
width, height, err = img.Size()
if err != nil {
return err
}
if (width <= this.Width && height <= this.Height && this.Width != 0 && this.Height != 0) || (this.Width == 0 && height <= this.Height) || (this.Height == 0 && width <= this.Width) {
return nil
}
w, h := this.Width, this.Height
if w == 0 {
w = width * h / height
err = img.Resize(w, h)
return err
}
if h == 0 {
h = height * w / width
err = img.Resize(w, h)
return err
}
p1 := float64(this.Width) / float64(this.Height)
p2 := float64(width) / float64(height)
if p2 > p1 {
h = int64(math.Floor(float64(this.Width) / p2))
if int64(math.Abs(float64(h-this.Height))) < 3 {
h = this.Height
}
} else {
w = int64(math.Floor(float64(this.Height) * p2))
if int64(math.Abs(float64(w-this.Width))) < 3 {
w = this.Width
}
}
err = img.Resize(w, h)
return err
}
开发者ID:chenbk85,项目名称:nephele,代码行数:48,代码来源:resize_w.go
示例15: Process
//高固定,宽(原图比例计算),宽固定,高(原图比例计算) (压缩)
func (this *ResizeZProcessor) Process(img *img4g.Image) error {
l4g.Debug("process resize z")
var err error
tran := this.Cat.NewTransaction(Image, "ResizeW")
defer func() {
tran.SetStatus(err)
tran.Complete()
}()
var width, height = this.imgWidth, this.imgHeight
if this.imgWidth == 0 || this.imgHeight == 0 {
var wd, ht int64
wd, ht, err = img.Size()
if err != nil {
return err
}
width = wd
height = ht
}
p1 := float64(this.Width) / float64(this.Height)
p2 := float64(width) / float64(height)
w, h := this.Width, this.Height
if p2 > p1 {
h = int64(math.Floor(float64(this.Width) / p2))
if int64(math.Abs(float64(h-this.Height))) < 3 {
h = this.Height
}
} else {
w = int64(math.Floor(float64(this.Height) * p2))
if int64(math.Abs(float64(w-this.Width))) < 3 {
w = this.Width
}
}
err = img.Resize(w, h)
return err
}
开发者ID:zesus19,项目名称:nephele,代码行数:37,代码来源:resizezprocessor.go
示例16: Process
func (this *ResizeCProcessor) Process(img *img4g.Image) error {
l4g.Debug("process resize c")
var err error
tran := this.Cat.NewTransaction(Image, "ResizeC")
defer func() {
tran.SetStatus(err)
tran.Complete()
}()
var width, height = this.imgWidth, this.imgHeight
var wd, ht int64
if width == 0 || height == 0 {
wd, ht, err = img.Size()
if err != nil {
return err
}
width = wd
height = ht
}
p1 := float64(this.Width) / float64(this.Height)
p2 := float64(width) / float64(height)
var (
x int64 = 0
y int64 = 0
w int64 = 0
h int64 = 0
)
if math.Abs(p1-p2) > 0.0001 {
if p2 > p1 { //以高缩小
h = height
w = int64(math.Floor(float64(h) * p1))
x = (width - w) / 2
}
if p2 < p1 { //以宽缩小
w = width
h = int64(math.Floor(float64(w) / p1))
y = (height - h) / 2
}
err = img.Crop(w, h, x, y)
if err != nil {
return err
}
}
err = img.Resize(this.Width, this.Height)
return err
}
开发者ID:zesus19,项目名称:nephele,代码行数:47,代码来源:resizecprocessor.go
示例17: chainProcImg
func chainProcImg(catinstance cat.Cat, chain *proc.ProcessorChain, img *img4g.Image) (err error) {
defer func() {
if r := recover(); r != nil {
log.WithFields(log.Fields{
"type": "ProcessImage.Panic",
}).Error(fmt.Sprintf("%v", r))
LogErrorEvent(catinstance, "ProcessImage.Panic", fmt.Sprintf("%v", r))
}
}()
defer img.DestoryWand()
if err = img.CreateWand(); err != nil {
return
}
if err = chain.Process(img); err != nil {
return
}
err = img.WriteImageBlob()
return
}
开发者ID:cannonhuang,项目名称:nephele,代码行数:19,代码来源:handler.go
示例18: chainProcImg
func chainProcImg(chain *proc.ProcessorChain, img *img4g.Image) (err error) {
defer func() {
if r := recover(); r != nil {
err = r.(error)
log("imagehandler->chainprocimg", r)
}
}()
defer img.DestoryWand()
if err = img.CreateWand(); err != nil {
return err
}
if err = chain.Process(img); err != nil {
return err
}
if err = img.WriteImageBlob(); err != nil {
return err
}
return nil
}
开发者ID:zesus19,项目名称:nephele,代码行数:19,代码来源:handler.go
示例19: Process
func (this *StripProcessor) Process(img *img4g.Image) error {
log.Debug("process strip")
err := img.Strip()
return err
}
开发者ID:chenbk85,项目名称:nephele,代码行数:5,代码来源:strip.go
注:本文中的github.com/ctripcorp/nephele/imgsvr/img4g.Image类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论