نواندیشان
0

سبد خرید شما خالی است.

سورس کد تبدیل تصویر به متن و برعکس جهت ارسال در شبکه

دسته بندی :مهندسی کامپیوتر 22 آذر 1393 سارا افشار 2083 مشاهده
convert image to string in java

روشهای زیادی برای تبدیل تصویر به رشته متنی و بالعکس وجود دارد که بعضی از آنها از روشهای خیلی پیچیده استفاده می کنند (بسته به حوزه های کاربردی ) اما در اینجا ما یک کد آماده ارایه می کنیم که از API های یک کتابخانه خارجی برای این منظور استفاده می کند این سورس کد جهت تبدیل تصویر به متن و انتقال آن در شبکه کاربرد دارد .
نام این کتابخانه خارجی Apache Commons Codec 1.10 هست که از اینجا می توانید آن را دانلود کرده و به محیط برنامه نویسی خود add نمایید .
این کد ابتدا تصویر را از روی هارد خوانده و در یک رشته به اصطلاح Base64 ذخیره می کند به صورت باینری
وبعد به کمک دستور و متد زیر آن را به رشته تبدیل می کند

کد:
String imageDataString = encodeImage(imageData);

و بعد دوباره آن را به حالت تصویر برمی گرداند (همان تصویر اصلی )
به وسیله متد زیر :

کد:
 byte[] imageByteArray = decodeImage(imageDataString);

مزیت این روش در این است که تصویر را می توان به جای اینکه به همان فرمت تصویر به  درون شبکه منتقل کنیم آن را به صورت یک فایل متنی (مانند فایل xml ،JASON و… ) در شبکه از ماشینی به ماشین دیگرانتقال دهیم  و هر رمزگذاری که اعمال می کنیم روی آن فایل متنی باشد نه تصویر .

کد کامل این برنامه رو در زیر می توانید مشاهده نمایید

کد:
package com.myjeeva.image;
 
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
 
import org.apache.commons.codec.binary.Base64;
 
/**
 * @desc Image manipulation - Conversion
 * 
 * @filename ImageManipulation.java
 * @author Jeevanandam M.
 * @copyright myjeeva.com
 */
public class ImageManipulation {
     
    /**
     * @param args
     */
    public static void main(String[] args) {
        File file = new File("/Users/sara/Pictures/wallpapers/water-drop.jpg");

 
        try {           
            // Reading a Image file from file system
            FileInputStream imageInFile = new FileInputStream(file);
            byte imageData[] = new byte[(int) file.length()];
            imageInFile.read(imageData);
 
            // Converting Image byte array into Base64 String
            String imageDataString = encodeImage(imageData);
 
            // Converting a Base64 String into Image byte array
            byte[] imageByteArray = decodeImage(imageDataString);
             
            // Write a image byte array into file system
            FileOutputStream imageOutFile = new FileOutputStream(
                    "/Users/jeeva/Pictures/wallpapers/water-drop-after-convert.jpg");
            imageOutFile.write(imageByteArray);
 
            imageInFile.close();
            imageOutFile.close();
 
            System.out.println("Image Successfully Manipulated!");
        } catch (FileNotFoundException e) {
            System.out.println("Image not found" + e);
        } catch (IOException ioe) {
            System.out.println("Exception while reading the Image " + ioe);
        }
 
    }
     
    /**
     * Encodes the byte array into base64 string
     *
     * @param imageByteArray - byte array
     * @Return String a {@link java.lang.String}
     */
    public static String encodeImage(byte[] imageByteArray) {
        return Base64.encodeBase64URLSafeString(imageByteArray);
    }
     
    /**
     * Decodes the base64 string into byte array
     *
     * @param imageDataString - a {@link java.lang.String}
     * @Return byte array
     */
    public static byte[] decodeImage(String imageDataString) {
        return Base64.decodeBase64(imageDataString);

    }
}
منبع: نواندیشان
مقالات، مطالب، طرح ها و پروژه های خود را برای قرارگیری در سایت علمی آموزشی نواندیشان از اینجا بفرستید.
سارا افشار

برای ارتباط ساده‌تر و سریع‌تر اپلیکیشن نواندیشان را دانلود کنید. دانلود اپلیکیشن

مطالب زیر را حتما بخوانید:

قوانین ارسال دیدگاه در سایت

  • چنانچه دارای سوال فنی درباره محصول خریداری شده هستید، لطفاً از بخش حساب کاربری، تیکت ارسال کنید.
  • چنانچه دیدگاهی توهین آمیز باشد و متوجه اشخاص مدیر، نویسندگان و سایر کاربران باشد تایید نخواهد شد.
  • چنانچه دیدگاه شما جنبه ی تبلیغاتی داشته باشد تایید نخواهد شد.
  • چنانچه در دیدگاه خود از شماره تماس، ایمیل و آیدی تلگرام استفاده کرده باشید تایید نخواهد شد.

  1. saeed گفته؛
    09:23 1393/09/29

    سلام
    ببخشید من 1 سوال دارم.
    من می خوام یک فایل MRI رو تو متلب به فایل رشته متنی تبدیل کنم. بعدش این فایل رو تبدیل به مش سطحی کنم و در نهایت نمایش بدم.
    مشکل اول اینه که نمی دونم چطور میشه تبدیل به فایل متنی تو متلب کرد. این کد شما رو هم تو متلب زدم نشد، جایی هم نتونستم پیدا کنم که بتونم این Apache Commons Codec 1.10 را به کتابخانه متلب اضافه کنم.
    کلا تو اول کار گیر کردم.
    خیلی ممنون میشم کسی بتونه راهنمایی کنه .
    با تشکر

    • Imaaan گفته؛
      15:42 1393/09/30

      سلام دوست عزیز
      کدی که اینجا گذاشته شده و توضیحات گفته شده برای محیط برنامه نویسی جاوا هست، توی انجمن سوالتون رو مطرح کنین، بخش پردازش تصویر با متلب:

      http://www.noandishaan.com/forums/forum1942.html

  2. saeed گفته؛
    09:57 1393/10/01

    بسیار متشکرم دوس عزیز Imaaan

  3. never گفته؛
    22:18 1394/10/03

    اقا عالی بودددددددد خیلی ممنونتونم کلی گشتم دنبال چنین چیزی

  4. حسین گفته؛
    23:12 1395/10/04

    سلام
    از این کد می توانم در c# استفاده کنم

  5. حسین گفته؛
    23:14 1395/10/04

    سلام
    از این کد می توانم در c# استفاده کنم ؟

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

لینک کوتاه:
کارایی بهتر در اندروید نواندیشان
0