पर क्रॉप करने के लिए मुझे एक छवि को आकार देने और एक विशिष्ट चौड़ाई और ऊंचाई पर फसल करने की आवश्यकता है। मैं एक विधि बनाने में सक्षम था जो स्क्वायर थंबनेल बनाएगा, लेकिन मुझे यह लागू करने के बारे में अनिश्चितता है कि वांछित थंबनेल स्क्वायर नहीं है।ऐप इंजन एक विशिष्ट चौड़ाई और ऊंचाई
def rescale(data, width, height):
"""Rescale the given image, optionally cropping it to make sure the result image has the specified width and height."""
from google.appengine.api import images
new_width = width
new_height = height
img = images.Image(data)
org_width, org_height = img.width, img.height
# We must determine if the image is portrait or landscape
# Landscape
if org_width > org_height:
# With the Landscape image we want the crop to be centered. We must find the
# height to width ratio of the image and Convert the denominater to a float
# so that ratio will be a decemal point. The ratio is the percentage of the image
# that will remain.
ratio = org_height/float(org_width)
# To find the percentage of the image that will be removed we subtract the ratio
# from 1 By dividing this number by 2 we find the percentage that should be
# removed from each side this is also our left_x coordinate
left_x = (1- ratio)/2
# By subtract the left_x from 1 we find the right_x coordinate
right_x = 1 - left_x
# crop(image_data, left_x, top_y, right_x, bottom_y), output_encoding=images.PNG)
img.crop(left_x, 0.0, right_x, 1.0)
# resize(image_data, width=0, height=0, output_encoding=images.PNG)
img.resize(height=height)
# Portrait
elif org_width < org_height:
ratio = org_width/float(org_height)
# crop(image_data, left_x, top_y, right_x, bottom_y), output_encoding=images.PNG)
img.crop(0.0, 0.0, 1.0, ratio)
# resize(image_data, width=0, height=0, output_encoding=images.PNG)
img.resize(width=witdh)
thumbnail = img.execute_transforms()
return thumbnail
यदि ऐसा करने का एक बेहतर तरीका है तो कृपया मुझे बताएं। किसी भी तरह की सहायता का स्वागत किया जाएगा।
वांछित प्रक्रिया को समझाते हुए एक आरेख है।
धन्यवाद,
केली
धन्यवाद। यही वही है जो मैं ढूंढ रहा था। –
कोड के लिए बहुत बहुत धन्यवाद, कमाल काम करता है! – goggin13
thx! ठीक है जो मैं – fceruti