تعلم كيفية تحويل صيغ الصور من صيغة إلى أخرى بأستخدام تطبيقات الجافا

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

تعلم كيفية تحويل صيغ الصور من صيغة إلى أخرى بأستخدام تطبيقات الجافا

مُساهمة من طرف زهراء في الجمعة سبتمبر 27, 2013 9:57 am

م الله الرحمن الرحيم 

توفر الجافا الاسلوب write() لتحويل بين صيغ الصور المختلفة ....هذا الاسلوب ينتمى للطبقة ImageIO و التى تقع تحت الحزمة javax.imageio ....ويتم استخدام الاسلوب على النحو التالى :

الرمز:
boolean write(RenderedImage image, String formatName, OutputStream output)


وكما ترى ...فهذا الأسلوب يقبل المعلمات الثلاث التالية :

1_ RenderedImage image ....يحدد الصورة المدخلة أو التى سيتم تحويلها لصيغة أخرى مع تحديد الفئة الفرعية RenderedImage كواجهة ...للحصول على كائن BufferedImage لقراءة الصورة المدخلة، ويمكن أن نستخدم قراءة (InputStream) والتي يتم توفيرها أيضا من قبل الطبقة ImageIO.

2_ formatName ....و يستخدم لتنسيق و لتحديد نوع مخرجات الصورة أو نوع التحويل أو نوع الامتداد المطلوب التحويل الية و يشمل الكثير من الصيغ مثل JPG, JPEG, PNG, BMP, WBMP , GIF

3_OutputStream ...و يستخدم لكتابة ملف الاخراج أو الصورة بعد تحديد ما سبق

مثال عملى : سنقوم بإنشاء تطبيق بسيط لتحويل الصور و ذلك على النحو التالى :

_ أستيراد المكتبات اللازمة

الرمز:

import java.awt.image.BufferedImage;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.imageio.ImageIO;
_ نقوم بإنشاء فئة وليكن بأسم ImageConverter ....وذلك على النحو التالى :

الرمز:
class ImageConverter {
 
  
}
_ نقوم بانشاء طريقة ثابته و ليكن بأسم convertFormat بداخل الفئة السابقة والتي تأخذ ثلاث معلمات ...الاول أسم و مسار الصورة المراد تحويلها ، الثانى أسم و مسار حفظ الصورة المخرجة أو التى تم تحويلها ، الثالث أسم التنسيق المطلوب للتحويل و ذلك على النحو التالى :

الرمز:
class ImageConverter {
 
    
    public static boolean convertFormat(String inputImagePath, String outputImagePath, String formatName) throws IOException {
        
      
    }
}
_ بداخل تلك الطريقة سنقوم بكتابة التعليمات البرمجية التالية :

1_ نقوم بانشاء مثيل جديد من كائن الادخال FileInputStream و كائن الاخراج  FileOutputStream مع تمرير مسار الادخال و الاخراج لكيهما وذلك على النحو التالى :

الرمز:
 FileInputStream inputStream = new FileInputStream(inputImagePath);
        FileOutputStream outputStream = new FileOutputStream(outputImagePath);
2_ قراءة الصورة المدخلة و ذلك على النحو التالى :

الرمز:
BufferedImage inputImage = ImageIO.read(inputStream);
3_ الاعلان عن متغير منطقى و كتابة صورة الاخراج مع تمرير مسار الادخال و الاخرا بالاضافة الى نوع التنسيق و ذلك على النحو التالى :

الرمز:
 boolean result = ImageIO.write(inputImage, formatName, outputStream);
4_ إغلاق كائنات الادخال و الاخراج على النحو التالى :

الرمز:
outputStream.close();
        inputStream.close();
5_ إرجاع قيمة المتغير المنطقى على النحو التالى :

الرمز:
 return result;
و الكود النهائى لتلك الفئة ستكون على النحو التالى :

الرمز:
class ImageConverter {
 
    
    public static boolean convertFormat(String inputImagePath, String outputImagePath, String formatName) throws IOException {
        
        FileInputStream inputStream = new FileInputStream(inputImagePath);
        FileOutputStream outputStream = new FileOutputStream(outputImagePath);
                
        BufferedImage inputImage = ImageIO.read(inputStream);
        boolean result = ImageIO.write(inputImage, formatName, outputStream);
        
        outputStream.close();
        inputStream.close();
        
        return result;
    }
}
_ فى الدالة الرئيسية للتطبيق نقوم بكتابة الشفرة التالية :

الرمز:
 public static void main(String[] args) {
        String inputImage = "D:/Photo/Pic1.jpg";
        String oututImage = "D:/Photo/Pic1.png";
        String formatName = "PNG";
        try {
            boolean result = ImageConverter.convertFormat(inputImage,
                    oututImage, formatName);
            if (result) {
                System.out.println("Image converted successfully.");
            } else {
                System.out.println("Could not convert image.");
            }
        } catch (IOException ex) {
            System.out.println("Error during converting image.");
            ex.printStackTrace();
        }
    }
حيث أن :

فى السطر الاول ...قمنا بالاعلان عن المتغير النصى inputImage  لتخزين فية اسم ومسار صورة الادخال
فى السطر الثانى ...قمنا بالاعلان عن المتغير النصى oututImage لتخزين فية أسم و مسار صورة الاخراج
فى السطر الثالث ....قمنا بالاعلان عن المتغير النصى formatName لتخزين فية نوع التنسيق

فى السطر الرابع ...قمنا بالاعلان عن المتغير المنطقى result و قمنا باستدعاء الفئة ImageConverter مع الطريقة convertFormat لتنفيذ التحويل بناء على المعلمات الثلاثة التى تم تمريها اليها

فى الاسطر الاخير أستخدام جملة شرط للتأكد من المتغير result صحيح و الذى يدل على نجاح عملية التحويل و طباعة رساة تفيد ذلك و العكس صحيح

زهراء
........
........

تاريخ التسجيل : 18/02/2011
المساهمات : 262
النقاط : 372
التقيم : 24
الدولة : مصر
الجنس : انثى

الرجوع الى أعلى الصفحة اذهب الى الأسفل

رد: تعلم كيفية تحويل صيغ الصور من صيغة إلى أخرى بأستخدام تطبيقات الجافا

مُساهمة من طرف أحمد مناع في الجمعة سبتمبر 27, 2013 5:40 pm


أشكرك الفاضلة زهراء ولكى منى أجمل تحية ...جزاك الله خيرا

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم

إن فقدت مكان بذورك التي بذرتها يوما ما سيخبرك المطر أين زرعتها ..لذا إبذر الخير فوق أي أرض وتحت أي سماء ومع أي أحد.. فأنت لا تعلم أين تجده ومتى تجده؟! إزرع جميلا ولو في غير موضعه .... فلا يضيع جميلا أينما زرعا .. فما أجمل العطاء... فقد تجد جزاءه في الدنيا أو يكون لك ذخرا في الآخرة

أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 809
النقاط : 1478
التقيم : 69
الدولة : مصر
الجنس : ذكر

http://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى