【问题标题】:Workaround for get_serving_url not supporting width/height 'size' param?get_serving_url 不支持宽度/高度“大小”参数的解决方法?
【发布时间】:2012-04-03 10:14:21
【问题描述】:

get_serving_url 目前不支持独立调整图像宽度/高度,而只允许使用 'size' 参数调整正方形大小。

http://code.google.com/p/googleappengine/issues/detail?id=4200

谁能为此提出一个有效的解决方法?似乎使用 images.resize() 是可行的方法,但这不需要将转换后的图像重新存储在 blobstore 中以获取 get_serving_url 的 blob_key 吗?

希望有一个足够高效的解决方案,不会破坏使用 blobstore 的速度优势!

谢谢大家。

【问题讨论】:

标签: python google-app-engine blobstore


【解决方案1】:

https://code.google.com/p/googleappengine/issues/detail?id=4200#c18

耶!

来自帖子: “它实际上已经实现了,但我没有在任何地方看到它的文档:

  • 最长尺寸长度:=s180
  • 宽度:=w200
  • 身高:=h150
  • 宽高:=w200-h150
  • 按大小裁剪:=s200-c
  • 使用宽度/高度进行裁剪:=w200-h150-c
  • 旋转:=r90
  • 组合旋转:=w200-h150-r90-c

这里是一个例子:http://lh4.ggpht.com/TgjDT-cPRr6bjrpSVQeILk93o4Ouzjo1ygMB6KpmnCHhyH5vJKKRrqxCD2bC3T09CRIP6h5QFsV_l0hnhio5bN7z=h200-w300-r180-c"

【讨论】:

    【解决方案2】:

    您需要做的是计算原始图像的比例以将其调整为所需的宽度和高度,然后您应该将计算出的尺寸值传递给服务网址并获得您想要的。

        resolution = '1200x900'
        blob_width, blob_height = resolution.split('x')
    
        blob_width  = float(blob_width)
        blob_height = float(blob_height)
    
        width  = float(width)
        height = float(height)
        blob_prop  = blob_width / blob_height
    
        req_box_prop = width / height
    
        if req_box_prop == blob_prop:
            scale_factor = blob_width / width
            serving_img_height = blob_width / scale_factor
            serving_img_width  = blob_height / scale_factor
    
        if req_box_prop < blob_prop:
            serving_img_width  = width
            serving_img_height = width / blob_prop
    
        else:
            serving_img_width  = height * blob_prop
            serving_img_height = height
    
    
        serving_img_width  = int(round(serving_img_width, 0)) 
        serving_img_height = int(round(serving_img_height, 0))
    
        # use serving urls
        side = max(serving_img_width, serving_img_height)
    

    side 是您用于服务网址的内容

    'http://yourservingurl=s%s'%side

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-16
      • 1970-01-01
      • 2015-01-21
      • 1970-01-01
      • 2018-01-23
      • 1970-01-01
      • 2013-06-17
      相关资源
      最近更新 更多