কম্পিউটার

জ্যাঙ্গোতে ক্লায়েন্ট সাইড ইমেজ জুম করা এবং ঘোরানো


কখনও কখনও, আমাদের একটি চিত্র ঘোরানো বা জুম করার প্রয়োজন হতে পারে। এই ধরনের ক্ষেত্রে, একটি ক্লায়েন্ট-সাইড ইমেজ জুমিং লাইব্রেরি এইচটিএমএল ফাইলে জুমিং-ঘোরানোর jquery বৈশিষ্ট্য যোগ করতে ব্যবহৃত হয়। আমাদের শুধু html ফাইলে jquery js এবং css লোড করতে হবে।

একটি জ্যাঙ্গো প্রকল্প এবং একটি অ্যাপ তৈরি করুন। urls সেটআপ করুন এবং কিছু মৌলিক জিনিস করুন যেমন INSTALLED_APPS-এ অ্যাপ যোগ করা

django-client-side-image-cropping ইনস্টল করুন লাইব্রেরি

pip install django-client-side-image-cropping

এখন settings.py,-এ নিম্নলিখিত লাইন যোগ করুন -

INSTALLED_APPS+=['client_side_image_cropping']

এখানে, আমরা একটি অ্যাপ হিসাবে একটি মডিউল যোগ করার একটি সহজ সেটিং করেছি।

উদাহরণ

models.py-এ , নিম্নলিখিত লাইন যোগ করুন −

from django.db import models

# Create your models here.
class Data(models.Model):

   image=models.ImageField(upload_to ='myimages/')

এখানে, আমরা আমাদের মডেল সেট আপ করি যার একটি ইমেজ ফিল্ড আছে।

settings.py.-এ মিডিয়া রুট সেটআপ করুন

urls.py-এ , নিম্নলিখিত লাইন যোগ করুন −

from django.urls import path
from . import views
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
   path('', views.home,name="home"),
]
urlpatterns += static(settings.MEDIA_URL,
document_root=settings.MEDIA_RO
OT)

এখানে, আমরা একটি মৌলিক মিডিয়া url করেছি সেটিং যা আপনি নিশ্চয়ই জানেন৷

এখন views.py-এ , নিম্নলিখিত যোগ করুন −

from django.shortcuts import render
from django import forms
from .models import Data
from client_side_image_cropping import ClientsideCroppingWidget

# Create your views here.
class DataForm(forms.ModelForm):
   class Meta:
      model=Data
         fields="__all__"
         widgets = {
            'image': ClientsideCroppingWidget(
               width=400,
               height=600,
               preview_width=100,
               preview_height=150,
            )
         }

def home(request):
   if request.method =="POST":
      form=DataForm(request.POST,request.FILES)
      if form.is_valid():
         form.save()
   form=DataForm()
   return render(request,'home.html',{"form":form})

এখানে, আমরা একটি সাধারণ ফর্ম তৈরি করেছি। এটি একটি মডেল ফর্ম, তাই এর ইমেজ ফিল্ডে, আমরা একটি ক্রপিং উইজেট যুক্ত করেছি৷

home.html,-এ নিম্নলিখিত যোগ করুন -

{% load static %}
{% load cropping %}
{% load thumbnail %}
<!DOCTYPE html>
<html>
   <head>
      <title>
         TUT
      </title>
      <link rel="stylesheet" href="{% static "client_side_i
mage_cropping/cropping.css" %}"></script>
      <link rel="stylesheet" href="{% static "client_side_i
mage_cropping/cropping_widget.css" %}"></script>
      <script src="https://ajax.googleapis.com/ajax/libs/jq
uery/1.12.4/jquery.min.js"></script>
      <script src="{% static "client_side_image_cropping/cr
oppie.min.js" %}"></script>
      <script src="{% static "client_side_image_cropping/cr
opping_widget.js" %}"></script>
   </head>
   <body>
      <h2>HI</h2>
         {% csrf_token %}
         <form method="post" enctype="multipart/formdata">
            {% csrf_token %}
            {{ form.as_p }}
            <input type="submit" value="Save"/>
      </form>
   </body>
</html>

ফ্রন্টএন্ডে, আমরা কিছু jQueries এবং কিছু স্টাইল লোড করেছি এবং ফর্মটি রেন্ডার করেছি যা ইনপুট নেবে।

এখন সব শেষ। আসুন আউটপুট পরীক্ষা করি।

আউটপুট

আপনি এরকম একটি ইন্টারফেস পাবেন, যার উপর আপনি ফটো ঘুরাতে এবং জুম করতে পারবেন। এটি দেখতে খুব সুন্দর ইন্টারফেস নয়, তবে আপনি CSS ব্যবহার করে এটি পরিবর্তন করতে পারেন।

মনে রাখবেন যে আপলোড করা ছবিটি স্থানচ্যুত দেখাতে পারে, তাই এটি ঠিক করতে ঘোরান ব্যবহার করুন। সেই স্থানচ্যুতি ব্রাউজার সমস্যার কারণে হতে পারে।

জ্যাঙ্গোতে ক্লায়েন্ট সাইড ইমেজ জুম করা এবং ঘোরানো জ্যাঙ্গোতে ক্লায়েন্ট সাইড ইমেজ জুম করা এবং ঘোরানো


  1. পিলো লাইব্রেরি ব্যবহার করে একটি ছবি ঘোরানো

  2. পিলো লাইব্রেরি ব্যবহার করে একটি ছবি লোড এবং প্রদর্শন করা হচ্ছে

  3. OpenCV ব্যবহার করে ছবি পড়া এবং প্রদর্শন করা

  4. পাইথনে OpenCV ব্যবহার করে কনট্যুর খুঁজুন এবং আঁকুন