1

さまざまなサイズと縦横比から正確に 60x80px にサイズ変更してトリミングする必要があります。データストアに入れる直前。誰もがすでにこの問題を解決しています。

現在、リストに表示しようとすると見栄えがよくないさまざまな幅の正確な高さ(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トーク/Googleチャットにアバターをアップロードするときに、同様の結果を出したいだけです。

誰でもこれを解決しましたか?

どうも

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 を持つ内に表示します。width: 60px; height: 80px; overflow: hidden;

そうすれば、リストにうまく表示されますが、サイズ変更された完全な画像をユーザーのプロファイル ページに表示することもできます (コードを見て、それがあなたがやろうとしていることだと思いますよね?)

于 2010-03-09T13:28:33.233 に答える