मुझे लगता है कि यह कुछ ऐसा है तो आप शायद अपने आप को लेखन को सबसे अच्छा होगा कि आपके डेटा और मॉडल हैं पर निर्भर करता है के रूप में यह है यदि आप मूल रखना चाहते हैं, तो आप (और कहां) फसलों को सहेजना चाहते हैं, भले ही आपके पास एक बड़ा ऐप हो, फिर भी आप अपने कोड में जो कुछ भी चाहते हैं उसे करने के लिए अन्य कोड मोड़ने की कोशिश करने में अधिक समय व्यतीत करेंगे परिस्थिति।
: -
(इस कोड है बहुत किसी न किसी तरह मैं सिर्फ बाहर चरणों वास्तव में बिछाने हूँ) आप एक imagefield के साथ एक मॉडल है, तो आप फसली छवि धारण करने के लिए एक दूसरी छवि क्षेत्र जोड़ सकता है
class MyModel(models.Model):
image = models.ImageField(...)
image_crop = models.ImageField(...)
और जेसीआरपी निर्देशांक को पकड़ने के लिए एक अतिरिक्त फ़ील्ड वाला एक फॉर्म जो क्लाइंट साइड पर फॉर्म में पॉप्युलेट किया जाएगा (फ़ील्ड छुपाया जाएगा)। क्षेत्र में निर्देशांक को आप किस रूप में सहेजते हैं, यह आपके ऊपर है, लेकिन यह एक जेसन डिक्शनरी (क्लाइंट साइड पर जेसन.जेएस और सर्वर साइड पर सरलजॉन) का उपयोग करने का विचार हो सकता है, जैसे:
{ 'x1' : '145', 'y1' : '200' ... }
प्रपत्र:
class MyModelForm(form.ModelForm):
""" Hide a field to hold the coordinates chosen by the user """
crop_coords = forms.CharField(attrs={'style':'display:none'})
class Meta:
model = MyModel
एक राय यह है कि यह सब संसाधित करता है:
def some_view(request):
form = request.POST
if form.is_valid():
crop_coords = form.cleaned_data['crop_coords']
# decode the coords using simpleson (or however you passed them)
...
# create a cropped image
original_image = form.cleaned_data['image']
cropped_image = cropper(original_image.path, crop_coords)
...
# save it back to the db - http://stackoverflow.com/questions/1308386/programmatically-saving-image-to-django-imagefield
...
और एक समारोह जनहित याचिका का उपयोग कर फसली छवि बनाने के लिए:
# Look here: http://djangosnippets.org/snippets/224/
def cropper(original_image_path, crop_coords):
""" Open original, create and return a new cropped image
...
स्रोत
2011-10-26 20:36:00
django-image-cropping के बारे में: यदि आप ImageCropField (https://github.com/jonasundderwolf/django-image-cropping/blob/master/image_cropping/fields.py) देखते हैं तो आप देखेंगे कि यह मूल रूप से मानक छवि फ़ील्ड लेता है और केवल व्यवस्थापक के लिए विजेट जोड़ता है। और ImageRatioField निर्देशांक को अल्पविराम से अलग तारों के रूप में संग्रहीत करता है, इसलिए यह pastylegs के सुझाव से बहुत अलग नहीं है। तो आप ImageCropField के रूप में किसी मौजूदा ऐप में मानक छवि फ़ील्ड को आसानी से पुनः प्राप्त करने में सक्षम होना चाहिए। या आपकी चिंताओं क्या हैं ("बहुत युग्मित")? – arie