تدوير الصور برمجياً هو حاجة متكررة عند بناء مولدات المعاينة، محررات الصور، أو سير عمل المستندات. Conholdate.Total for Java يوفر مجموعة تطوير برمجيات قوية تجعل معالجة الصور سهلة في تطبيقات Java. في هذا الدليل ستتعلم كيفية تدوير ملفات PNG و JPG، وتكوين معلمات التدوير، والحفاظ على البيانات الوصفية مع الحفاظ على جودة الصورة عالية.

تحضير البيئة - المتطلبات والإعداد

قبل أن تبدأ، تأكد من أن لديك ما يلي:

  • تم تثبيت Java 17 أو أحدث.
  • بيئة تطوير متكاملة مثل IntelliJ IDEA أو Eclipse.
  • Maven لإدارة الاعتمادات.

أضف مستودع Maven الخاص بـ Conholdate واعتماد SDK إلى ملف pom.xml الخاص بك:

<repositories>
    <repository>
        <id>conholdate-repo</id>
        <name>Conholdate Maven Repository</name>
        <url>https://repository.conholdate.com/repo/</url>
    </repository>
</repositories>

<dependency>
    <groupId>com.conholdate</groupId>
    <artifactId>conholdate-total</artifactId>
    <version>24.9</version>
    <type>pom</type>
</dependency>

قم بتنزيل أحدث ملفات SDK الثنائية من صفحة التنزيل الرسمية: Conholdate.Total for Java Download. بمجرد حل الاعتمادات، تكون جاهزًا لكتابة كود يدور الصور.

تدوير الصورة في Java: دليل خطوة بخطوة

الخطوة 1: تحميل مسارات المصدر والوجهة

حدد مواقع ملفات الإدخال والإخراج. يعمل SDK مع صيغ PNG و JPG.

String inputPath = "input.jpg";
String outputPath = "output_rotated.jpg";

الخطوة 2: تهيئة معالج التحويل والخيارات

إنشاء الكائنات الأساسية التي تدير عملية التحويل.

ConversionHandler handler = new ConversionHandler();
ImageConvertOptions options = new ImageConvertOptions();

الخطوة 3: تعيين زاوية الدوران ولون الخلفية

حدد عدد الدرجات التي يجب تدوير الصورة بها ولون التعبئة للزوايا الفارغة.

options.setRotateAngle(90);               // Rotate 90 degrees clockwise
options.setBackgroundColor(Color.WHITE);  // Fill empty space with white

الخطوة 4: تكوين المعلمات الإضافية

احتفظ بالبيانات الوصفية الأصلية وحدد جودة JPEG عندما يكون الإخراج بصيغة JPG.

options.setPreserveMetadata(true);
options.setQuality(90); // JPEG quality (0‑100)

الخطوة 5: تنفيذ الدوران

استدعِ طريقة convert لتطبيق الدوران وكتابة النتيجة.

handler.convert(inputPath, outputPath, options);
System.out.println("Image rotated successfully: " + outputPath);

لمزيد من التفاصيل حول فئة ConversionHandler، يرجى الرجوع إلى مرجع API الرسمي.

مثال كامل للكود: تدوير الصورة في جافا باستخدام Conholdate.Total

يوضح المثال التالي سير العمل الكامل لتدوير ملف صورة.

يوضح هذا المثال كيفية تدوير صورة JPG بزاوية 90 درجة وحفظ النتيجة.

import com.groupdocs.conversion.ConversionHandler;
import com.groupdocs.conversion.options.convert.ImageConvertOptions;
import java.awt.Color;

public class RotateImageExample {
    public static void main(String[] args) {
        String inputPath = "input.jpg";
        String outputPath = "output_rotated.jpg";

try (ConversionHandler handler = new ConversionHandler()) {
            ImageConvertOptions options = new ImageConvertOptions();
            // Rotation angle in degrees (positive = clockwise)
            options.setRotateAngle(90);
            // Background color for empty areas after rotation
            options.setBackgroundColor(Color.WHITE);
            // Preserve original metadata (EXIF, DPI, etc.)
            options.setPreserveMetadata(true);
            // Optional: for large images you can limit memory usage
            options.setQuality(90); // JPEG quality (0-100)

handler.convert(inputPath, outputPath, options);
            System.out.println("Image rotated successfully: " + outputPath);
        } catch (Exception e) {
            System.err.println("Error during image rotation:");
            e.printStackTrace();
        }
    }
}

ملاحظة: يوضح مثال الشيفرة هذا الوظيفة الأساسية. قبل استخدامه في مشروعك، تأكد من تحديث أي مسارات ملفات وقيم التكوين لتطابق بيئتك الفعلية، وتحقق من أن جميع الاعتمادات المطلوبة مثبتة بشكل صحيح، واختبر بدقة في بيئة التطوير الخاصة بك. إذا واجهت أي مشكلات، يرجى الرجوع إلى الوثائق الرسمية أو التواصل مع فريق الدعم للحصول على المساعدة.

معلمات الدوران: الخيارات والإعدادات

يوفر SDK عدة خيارات لضبط عملية الدوران بدقة.

  • زاوية الدوران - يحدد عدد الدرجات التي يتم تدوير الصورة بها. القيم الموجبة تدور في اتجاه عقارب الساعة.
options.setRotateAngle(90);
  • لون الخلفية - يحدد لون التعبئة للزوايا الفارغة التي تظهر بعد الدوران. استخدم أي قيمة java.awt.Color.

  • الحفاظ على البيانات الوصفية - عند التفعيل، تُحفظ بيانات EXIF و DPI وغيرها من البيانات الوصفية في ملف الإخراج. انظر إلى ImageConvertOptions API لمزيد من التفاصيل.

  • الجودة - يتحكم في جودة ضغط JPEG (0‑100). القيم الأعلى تحتفظ بمزيد من التفاصيل ولكنها تزيد حجم الملف.

قم بضبط هذه الإعدادات لتتناسب مع متطلبات تطبيقك، سواء كنت بحاجة إلى إخراج PNG بدون فقدان أو نتائج JPG عالية الجودة.

الخاتمة

تدوير الصور في Java سهل عندما تستخدم Conholdate.Total for Java. يشرح هذا الدليل الإعداد المطلوب، وتنفيذًا مفصلاً خطوة بخطوة، وخيارات التكوين الرئيسية التي تتيح لك التحكم في الزاوية، والخلفية، والحفاظ على البيانات الوصفية، وجودة الإخراج. تذكر أن تحصل على ترخيص مناسب للنشر في بيئات الإنتاج؛ يمكنك استكشاف خيارات التسعير على https://purchase.conholdate.com/pricing/total/family/ أو الحصول على ترخيص مؤقت للاختبار على https://purchase.conholdate.com/temporary-license/. مع دمج SDK، يمكنك إضافة تدوير صور موثوق إلى أي سير عمل قائم على Java.

الأسئلة المتكررة

  • كيف يمكنني تدوير ملف صورة في Java باستخدام Conholdate.Total?
    استخدم الفئة ImageConvertOptions لتعيين زاوية الدوران المطلوبة ثم استدعِ handler.convert(inputPath, outputPath, options) كما هو موضح في الأمثلة أعلاه.

  • هل يمكنني تدوير كل من صور PNG و JPG باستخدام نفس الكود؟
    نعم، يكتشف SDK تلقائيًا تنسيق المصدر. قدّم امتداد الملف الصحيح في مسار الإدخال وسيعمل نفس الكود لكل من PNG و JPG.

  • ما هي الخيارات المتاحة لتخصيص عملية الدوران؟
    يمكنك تعديل زاوية الدوران، لون الخلفية، جودة الإخراج، واختيار ما إذا كنت تريد الحفاظ على البيانات الوصفية. راجع ImageConvertOptions API للحصول على القائمة الكاملة.

  • هل أحتاج إلى ترخيص لاستخدام هذه الميزة في الإنتاج؟
    يتطلب الاستخدام في الإنتاج ترخيصًا صالحًا. احصل على ترخيص مؤقت للتقييم على https://purchase.conholdate.com/temporary-license/ أو عرض تفاصيل التسعير الكاملة على https://purchase.conholdate.com/pricing/total/family/.

اقرأ المزيد