1

我需要从各种尺寸和纵横比调整并裁剪到 60x80 像素。就在我放入数据存储区之前。任何人都已经解决了这个问题。

目前我已经成功地将它转换为具有各种宽度的精确高度(80px),当我尝试在列表上显示它时看起来不太好。例如 jcaroussel。

我的 db.put 代码如下所示:

    if users.get_current_user():
        personal.personal_id = int(self.request.get('personal_id'))
        personal.name = self.request.get('name')
        personal.latitude = self.request.get('latitude')
        personal.info = self.request.get('info')
        photo = images.resize(self.request.get('img'), 0, 80)
        personal.photo = db.Blob(photo)
        personal.lc_id = int(self.request.get('lc_id'))
        personal.put()
        self.redirect('/admin/personal')

    else:
      self.response.out.write('I\'m sorry, you don\'t have permission to add this LP Personal Data.')

当我们在 google talk/google chat 上上传我们的头像时,我只想做类似的结果。

有人解决了这个问题吗?

谢谢

4

2 回答 2

1

将图像的高度调整为 80 像素后,您必须使用此处crop定义的函数。例如:

img = images.Image(self.request.get('img'))
img.resize(0, 80)
resized_img = img.execute_transforms(output_encoding=images.JPEG)
left_x = (resized_img.width - 60) / 2
resized_img.crop(left_x, 0, left_x + 60, 80)
cropped_img = resized_image.execute_transforms(output_encoding=images.JPEG)

在我的示例中,它裁剪到图像的中心。它假设调整大小的图像至少有 60 像素宽,但显然您必须添加一些检查来确认这一点,因为用户可能不会上传正确大小的图像。

于 2010-03-08T10:08:00.993 回答
0

我用了别的东西:

  • 将原始图像调整为最大高度 (80)
  • 存储调整大小(但完整/未裁剪)的图像
  • <div>在具有以下 CSS的 a 中显示它:width: 60px; height: 80px; overflow: hidden;

这样它会很好地显示在您的列表中,但您仍然可以在用户的​​个人资料页面上显示完整的调整大小的图片(看着您的代码,我想这就是您想要做的,对吧?)

于 2010-03-09T13:28:33.233 回答