জাভাতে বেস 64 হিসাবে এনকোডিং


317

জাভাতে বেস 64 এনকোডিংয়ে আমাকে কিছু ডেটা এনকোড করা দরকার। আমি কেমন করে ঐটি করি? একটি বেস 64 এনকোডার সরবরাহ করে এমন শ্রেণীর নাম কী?


আমি sun.misc.BASE64Encoderক্লাসটি ব্যবহার করার চেষ্টা করেছি , সাফল্য ছাড়াই। আমার কাছে জাভা 7 কোডের নীচের লাইনটি রয়েছে:

wr.write(new sun.misc.BASE64Encoder().encode(buf));

আমি গ্রহণ করছি গ্রহনটি এই লাইনটিকে একটি ত্রুটি হিসাবে চিহ্নিত করে। আমি প্রয়োজনীয় গ্রন্থাগারগুলি আমদানি করেছি:

import sun.misc.BASE64Encoder;
import sun.misc.BASE64Decoder;

তবে আবারও দু'জনকেই ত্রুটি হিসাবে দেখানো হয়েছে। আমি এখানে একটি অনুরূপ পোস্ট পেয়েছি ।

আমি অ্যাপাচি কমন্সকে অন্তর্ভুক্ত দ্বারা প্রস্তাবিত সমাধান হিসাবে ব্যবহার করেছি:

import org.apache.commons.*;

এবং ডাউনলোড করা জেআর ফাইলগুলি আমদানি করে: http://commons.apache.org/codec/

তবে সমস্যাটি এখনও রয়েছে। গ্রহন এখনও উল্লিখিত ত্রুটিগুলি দেখায়। আমার কি করা উচিৎ?


7
আমার পরামর্শ: ত্রুটি বার্তাটি পড়ুন এবং এটি কী বলে তা বোঝার চেষ্টা করুন।
জেবি নিজেট

27
আপনার উপর sun.**
15

16
তারা পাবলিক এপিআই এর অংশ নয়; এগুলি পরিবর্তন, অপসারণ বা বিনা বিজ্ঞপ্তিতে যা কিছু হতে পারে। তাদের মধ্যে কিছু পরীক্ষামূলক বা কেবল উত্পাদন-গ্রেড নয়। oracle.com/technetwork/java/faq-sun-packages-142232.html
onon15

5
অথবা জাএএক্সবি ডেটাটাইপ কনভার্টরটি ব্যবহার করুন যা জাভা 6 এবং পরবর্তীকালে স্ট্যান্ডার্ড হিসাবে অন্তর্ভুক্ত।
আয়ান রবার্টস

উত্তর:


621

আপনার শ্রেণীর আমদানি পরিবর্তন করতে হবে:

import org.apache.commons.codec.binary.Base64;

এবং তারপরে আপনার ক্লাসটি বেস 64 ক্লাসটি ব্যবহার করতে পরিবর্তন করুন।

এখানে কয়েকটি উদাহরণ কোড রয়েছে:

byte[] encodedBytes = Base64.encodeBase64("Test".getBytes());
System.out.println("encodedBytes " + new String(encodedBytes));
byte[] decodedBytes = Base64.decodeBase64(encodedBytes);
System.out.println("decodedBytes " + new String(decodedBytes));

তারপরে আপনার কেন সূর্য ব্যবহার করা উচিত নয় তা পড়ুন * প্যাকেজগুলি


আপডেট (2016-12-16)

আপনি এখন java.util.Base64জাভা ৮ ব্যবহার করতে পারেন can প্রথমে আপনি যেমনটি করেন তেমন আমদানি করুন:

import java.util.Base64;

তারপরে বেস 64 স্ট্যাটিক পদ্ধতিগুলি নিম্নরূপ ব্যবহার করুন:

byte[] encodedBytes = Base64.getEncoder().encode("Test".getBytes());
System.out.println("encodedBytes " + new String(encodedBytes));
byte[] decodedBytes = Base64.getDecoder().decode(encodedBytes);
System.out.println("decodedBytes " + new String(decodedBytes));

আপনি যদি সরাসরি এনকোড স্ট্রিং করতে চান এবং এনকোড স্ট্রিং হিসাবে ফলাফল পেতে চান তবে আপনি এটি ব্যবহার করতে পারেন:

String encodeBytes = Base64.getEncoder().encodeToString((userName + ":" + password).getBytes());

আরও 64 এর জন্য জাভা ডকুমেন্টেশন দেখুন।


এটি কাজ করার জন্য আমার কি কোনও বাহ্যিক প্যাকেজ ডাউনলোড করতে হবে? যদি হ্যাঁ, কোনটি?
বাতিল হয়েছে

2
না আপনার আফিক কিছু ডাউনলোড করার দরকার নেই
প্রটন্নাল

16
org.apache.commons.codec.binary.Base64 কোনও ডিফল্ট লাইব্রেরির মতো লাগে না। আমি অনুমান করি যে এর জন্য আপনাকে অ্যাপাচি কমন্স অন্তর্ভুক্ত করতে হবে। রাইট?
রবার্ট রেইজ

@ ফ্র্যাঙ্কটি একবারে ডিকোডিং করে বাইটগুলি একবারে আউটআউফ মেমরি ত্রুটি বাড়িয়ে দেয় ny কোনও ধারণা এটি বাফারে প্রক্রিয়া করে
xyz

পুরানো সমাধান উপরে আপডেট রাখুন দয়া করে।
Zon

225

মজাদার ক্লাসে জাভা 8-এর কখনই খুব বেশি দেরি না হতে ব্যবহার করুন: java.util.Base64

new String(Base64.getEncoder().encode(bytes));

11
তুচ্ছ মন্তব্য থাকলেও লক্ষ্য করুন যে আপনি যদি ব্যবহার করেন যে আপনি জাভার পুরানো সংস্করণগুলির সাথে সামঞ্জস্য করছেন না, যা (অন্তত এই সময়ে কমপক্ষে) সম্ভবত আরও বেশি প্রচলিত।
ডিসকডার

আমি জাভা 8 এর ক্লাসও পছন্দ করতে চাই। আমি বর্তমানে আমাদের বসন্ত প্রকল্প থেকে অ্যাপাচি কমন্স লাইব্রেরি অপসারণ করার জন্য একটি ক্লাসে কাজ করছি। বেশিরভাগ স্টাফটি সহজেই স্প্রিং লাইব্রেরি বা jdk থেকে পদ্ধতিতে প্রতিস্থাপন করা যায়।
অ্যাড্রিয়ান কসমা

68

জাভা 8 এ এটি করা যেতে পারে: বেস64.getEncoder ()। এনকোডটোস্ট্রিং (স্ট্রিং.সেটবাইটস (স্ট্যান্ডার্ডচারেটস.আউটএফ_8))

এখানে একটি সংক্ষিপ্ত, স্ব-অন্তর্ভুক্ত সম্পূর্ণ উদাহরণ:

import java.nio.charset.StandardCharsets;
import java.util.Base64;

public class Temp {
    public static void main(String... args) throws Exception {
        final String s = "old crow medicine show";
        final byte[] authBytes = s.getBytes(StandardCharsets.UTF_8);
        final String encoded = Base64.getEncoder().encodeToString(authBytes);
        System.out.println(s + " => " + encoded);
    }
}

আউটপুট:

old crow medicine show => b2xkIGNyb3cgbWVkaWNpbmUgc2hvdw==

3
জাভা স্ট্যান্ডার্ড লাইব্রেরিতে চারসেট কনস্ট্যান্ট কেন নেই, ওহ কেন ?!
লুকাস ভিক্টর

4
ভাল প্রশ্ন, লুকাস! আসলে, আছে। আমি ভুলে গেছি! java.nio.charset.StandardCharsets। আমি আমার উত্তর সম্পাদনা করব। দেখুন stackoverflow.com/questions/1684040/...
কারবি

67

আপনি বেস 64 এনকোডিং ব্যবহার করে রূপান্তর করতে পারেন। এটি করার জন্য, আপনি javax.xml.bind.DatatypeConverter#printBase64Binaryপদ্ধতিটি ব্যবহার করতে পারেন ।

উদাহরণ স্বরূপ:

byte[] salt = new byte[] { 50, 111, 8, 53, 86, 35, -19, -47 };
System.out.println(DatatypeConverter.printBase64Binary(salt));

4
এটি কাজ করার সময়, ডকুমেন্টেশনগুলিতে বিশেষভাবে বলা হয়েছে: ডেটাটাইপকনভার্টির ইন্টারফেস কেবল জ্যাকএক্সবি সরবরাহকারীর ব্যবহারের জন্য।
gebirgsbärbel

11
আমি মনে করি যে @gebirgsbaerbel ভুল, প্রিন্টএক্স () এবং পার্সেক্স () পদ্ধতিটি যে কোনও একটি দ্বারা ব্যবহার করা যেতে পারে, জ্যাকএক্সবি-র জন্য কেবল একমাত্র জিনিসটিই হল setDatatypeConverter()পদ্ধতি (যা তখন জ্যাকএক্সবি সরবরাহকারীদের জন্য কল করা উচিত)।
ফোনিক্স

9
অবশেষে জাভা 8 থেকে করুন Base64- বর্গ হতে হবে যেতে উপায়। তবে যদি আপনাকে ইতিমধ্যে জাভা 7 টি লক্ষ্য করে নিতে হয় তবে এই সমাধানটি দুর্দান্ত কারণ এটি বাহ্যিক লাইব্রেরিগুলিতে নির্ভর করে না।
ডানা

4
জাভা ৯. এর অধীনে এটি কাজ করে না সবচেয়ে খারাপ, জাভাক্স.এক্সএমএল.বাইন্ড ব্যবহার করে জাভা for এর জন্য কোড সংকলিত কোড * জাভা ৯ এর আওতায় রানটাইম এ ব্যর্থ হবে
স্টিফেন এম-

21

গুগল পেয়ারা হল বেস 64 ডেটা এনকোড এবং ডিকোড করার আরেকটি পছন্দ:

POM কনফিগারেশন:

<dependency>
   <artifactId>guava</artifactId>
   <groupId>com.google.guava</groupId>
   <type>jar</type>
   <version>14.0.1</version>
</dependency>

কোডের উদাহরণ:

String inputContent = "Hello Việt Nam";
String base64String = BaseEncoding.base64().encode(inputContent.getBytes("UTF-8"));

// Decode
System.out.println("Base64:" + base64String); // SGVsbG8gVmnhu4d0IE5hbQ==
byte[] contentInBytes = BaseEncoding.base64().decode(base64String);
System.out.println("Source content: " + new String(contentInBytes, "UTF-8")); // Hello Việt Nam

10

Eclipse আপনাকে একটি ত্রুটি / সতর্কতা দেয় কারণ আপনি অভ্যন্তরীণ ক্লাসগুলি ব্যবহার করার চেষ্টা করছেন যা কোনও JDK বিক্রেতার সাথে সুনির্দিষ্ট এবং পাবলিক API এর অংশ নয়। জাকার্তা কমন্স বেস 6464 কোডেকের নিজস্ব বাস্তবায়ন সরবরাহ করে, যা অবশ্যই আলাদা প্যাকেজে থাকে in সেইগুলি আমদানি মুছুন এবং গ্রহনটি আপনার জন্য উপযুক্ত কমন্স শ্রেণি আমদানি করতে দিন।


জাকার্তা প্রকল্পের নেই । এটি মিশ্রিত এবং মেলানো হয়েছে (এবং নামটি জাভা EE এর জন্য পুনরায় ব্যবহৃত হয়েছে )। আপনি কি নিজের উত্তর আপডেট করতে পারেন এবং কিছু রেফারেন্স সরবরাহ করতে পারেন? উদাহরণস্বরূপ, এটি এখন ক্লাস Base64হয়org.apache.commons.codec.binary ? এখন কি এই প্রসঙ্গে অ্যাপাচি কমন্স ?
পিটার মর্টেনসেন

আপনি আমার উত্তর সম্পাদনা করতে স্বাগতম।
মার্কো টপলনিক

9

এটি রূপান্তর করতে আপনার একটি এনকোডার এবং ডিকোডার দরকার যা আপনি বেস6464 কোডার - জাভায় একটি মুক্ত-উত্স বেস6464 এনকোডার / ডিকোডার থেকে পাবেন । এটি আপনার প্রয়োজন হবে বেস 6464 কোডার.জভা ফাইল ।

এখন আপনার প্রয়োজন অনুসারে এই ক্লাসটি অ্যাক্সেস করতে আপনার নীচের শ্রেণীর প্রয়োজন হবে:

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.InputStream;
import java.io.IOException;
import java.io.OutputStream;

public class Base64 {

    public static void main(String args[]) throws IOException {
        /*
         * if (args.length != 2) {
         *     System.out.println(
         *         "Command line parameters: inputFileName outputFileName");
         *     System.exit(9);
         * } encodeFile(args[0], args[1]);
         */
        File sourceImage = new File("back3.png");
        File sourceImage64 = new File("back3.txt");
        File destImage = new File("back4.png");
        encodeFile(sourceImage, sourceImage64);
        decodeFile(sourceImage64, destImage);
    }

    private static void encodeFile(File inputFile, File outputFile) throws IOException {
        BufferedInputStream in = null;
        BufferedWriter out = null;
        try {
            in = new BufferedInputStream(new FileInputStream(inputFile));
            out = new BufferedWriter(new FileWriter(outputFile));
            encodeStream(in, out);
            out.flush();
        }
        finally {
            if (in != null)
                in.close();
            if (out != null)
                out.close();
        }
    }

    private static void encodeStream(InputStream in, BufferedWriter out) throws IOException {
        int lineLength = 72;
        byte[] buf = new byte[lineLength / 4 * 3];
        while (true) {
            int len = in.read(buf);
            if (len <= 0)
                break;
            out.write(Base64Coder.encode(buf, 0, len));
            out.newLine();
        }
    }

    static String encodeArray(byte[] in) throws IOException {
        StringBuffer out = new StringBuffer();
        out.append(Base64Coder.encode(in, 0, in.length));
        return out.toString();
    }

    static byte[] decodeArray(String in) throws IOException {
        byte[] buf = Base64Coder.decodeLines(in);
        return buf;
    }

    private static void decodeFile(File inputFile, File outputFile) throws IOException {
        BufferedReader in = null;
        BufferedOutputStream out = null;
        try {
            in = new BufferedReader(new FileReader(inputFile));
            out = new BufferedOutputStream(new FileOutputStream(outputFile));
            decodeStream(in, out);
            out.flush();
        }
        finally {
            if (in != null)
                in.close();
            if (out != null)
                out.close();
        }
    }

    private static void decodeStream(BufferedReader in, OutputStream out) throws IOException {
        while (true) {
            String s = in.readLine();
            if (s == null)
                break;
            byte[] buf = Base64Coder.decodeLines(s);
            out.write(buf);
        }
    }
}

অ্যান্ড্রয়েডে আপনি কোনও সার্ভার বা ওয়েব পরিষেবায় আপলোড করার জন্য আপনার বিটম্যাপটি বেস 64 এ রূপান্তর করতে পারেন।

Bitmap bmImage = //Data
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bmImage.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] imageData = baos.toByteArray();
String encodedImage = Base64.encodeArray(imageData);

এই "এনকোডযুক্ত চিত্র" আপনার চিত্রের পাঠ্য উপস্থাপনা। আপনি এটি আপলোডের উদ্দেশ্যে বা নীচে ( রেফারেন্স ) সরাসরি কোনও HTML পৃষ্ঠায় ডাইপ্লেইয়িংয়ের জন্য ব্যবহার করতে পারেন :

<img alt="" src="data:image/png;base64,<?php echo $encodedImage; ?>" width="100px" />
<img alt="" src="data:image/png;base64,/9j/4AAQ...........1f/9k=" width="100px" />

ডকুমেন্টেশন: http://dwij.co.in/java-base64-image-encoder


শেষ লিঙ্কটি (dwij.co.in) ভাঙা হয়েছে (404)।
পিটার মর্টেনসেন


9

এখানে আমার দুটি সেন্ট রয়েছে ... জাভা 8 এর বেস 64 এর নিজস্ব প্রয়োগ রয়েছে । তবে আমি কিছুটা বিরক্তিকর পার্থক্য পেয়েছি। উদাহরণস্বরূপ, আমি একটি কোড উদাহরণ সরবরাহ করব:

আমার কোডেক মোড়ক:

public interface MyCodec
{
  static String apacheDecode(String encodedStr)
  {
    return new String(Base64.decodeBase64(encodedStr), Charset.forName("UTF-8"));
  }

  static String apacheEncode(String decodedStr)
  {
    byte[] decodedByteArr = decodedStr.getBytes(Charset.forName("UTF-8"));
    return Base64.encodeBase64String(decodedByteArr);
  }

  static String javaDecode(String encodedStr)
  {
    return new String(java.util.Base64.getDecoder().decode(encodedStr), Charset.forName("UTF-8"));
  }

  static String javaEncode(String decodedStr)
  {
    byte[] decodedByteArr = decodedStr.getBytes(Charset.forName("UTF-8"));
    return java.util.Base64.getEncoder().encodeToString(decodedByteArr);
  }
}

পরীক্ষা ক্লাস:

public class CodecDemo
{
  public static void main(String[] args)
  {
    String decodedText = "Hello World!";

    String encodedApacheText = MyCodec.apacheEncode(decodedText);
    String encodedJavaText = MyCodec.javaEncode(decodedText);

    System.out.println("Apache encoded text: " + MyCodec.apacheEncode(encodedApacheText));
    System.out.println("Java encoded text: " + MyCodec.javaEncode(encodedJavaText));

    System.out.println("Encoded results equal: " + encodedApacheText.equals(encodedJavaText));

    System.out.println("Apache decode Java: " + MyCodec.apacheDecode(encodedJavaText));
    System.out.println("Java decode Java: " + MyCodec.javaDecode(encodedJavaText));

    System.out.println("Apache decode Apache: " + MyCodec.apacheDecode(encodedApacheText));
    System.out.println("Java decode Apache: " + MyCodec.javaDecode(encodedApacheText));
  }
}

আউটপুট:

Apache encoded text: U0dWc2JHOGdWMjl5YkdRaA0K

Java encoded text: U0dWc2JHOGdWMjl5YkdRaA==
Encoded results equal: false
Apache decode Java: Hello World!
Java decode Java: Hello World!
Apache decode Apache: Hello World!
Exception in thread "main" java.lang.IllegalArgumentException: Illegal base64 character d
    at java.util.Base64$Decoder.decode0(Base64.java:714)
    at java.util.Base64$Decoder.decode(Base64.java:526)
    at java.util.Base64$Decoder.decode(Base64.java:549)

লক্ষ্য করুন যে অ্যাপাচি এনকোডযুক্ত পাঠ্যের শেষে অতিরিক্ত লাইন ব্রেক (সাদা স্থান) রয়েছে। অতএব, বেস কোড বাস্তবায়নে নির্বিশেষে আমার কোডেক একই ফলাফল আনার জন্য আমাকে trim()অ্যাপাচি এনকোডড পাঠ্যে কল করতে হয়েছিল। আমার ক্ষেত্রে, আমি সহজভাবে আমার কোডেকের উপরোক্ত পদ্ধতি কলটি apacheDecode()নিম্নলিখিত হিসাবে যুক্ত করেছি:

return Base64.encodeBase64String(decodedByteArr).trim();

একবার এই পরিবর্তনটি করা হয়ে গেলে, ফলাফলগুলি আমি যা দিয়ে প্রত্যাশা করেছিলাম তা হ'ল:

Apache encoded text: U0dWc2JHOGdWMjl5YkdRaA==
Java encoded text: U0dWc2JHOGdWMjl5YkdRaA==
Encoded results equal: true
Apache decode Java: Hello World!
Java decode Java: Hello World!
Apache decode Apache: Hello World!
Java decode Apache: Hello World!

উপসংহার : আপনি যদি অ্যাপাচি বেস 64 থেকে জাভাতে যেতে চান তবে আপনার অবশ্যই:

  1. আপনার অ্যাপাচি ডিকোডার দিয়ে এনকোডযুক্ত পাঠ্যটি ডিকোড করুন।
  2. জাভা সহ এনকোড ফলাফল (প্লেইন) পাঠ্য।

আপনি যদি এই পদক্ষেপগুলি অনুসরণ না করে স্যুইচ করেন তবে সম্ভবত আপনি সমস্যার মধ্যে পড়ে যাবেন। আমি এই আবিষ্কার করেছি।


8

অ্যান্ড্রয়েডে, android.util.Base64 ইউটিলিটি ক্লাসের স্থির পদ্ধতিগুলি ব্যবহার করুন । রেফারেন্সড ডকুমেন্টেশন বলছে যে বেস 64 ক্লাসটি এপিআই লেভেল 8 ( অ্যান্ড্রয়েড 2.2 (ফ্রয়ে)) এ যুক্ত হয়েছিল।

import android.util.Base64;

byte[] encodedBytes = Base64.encode("Test".getBytes());
Log.d("tag", "encodedBytes " + new String(encodedBytes));

byte[] decodedBytes = Base64.decode(encodedBytes);
Log.d("tag", "decodedBytes " + new String(decodedBytes));

আপনি অ্যান্ড্রয়েডের জন্য বিকাশ করছেন এবং আপনি জাভা ৮ ব্যবহার করতে না পারলে এটি সেরা উত্তর
ক্রেগ ব্রাউন

6

অ্যাপাচি কমন্সে বেস 64 এর একটি সুন্দর বাস্তবায়ন রয়েছে। আপনি এটিকে সহজ হিসাবে এটি করতে পারেন:

// Encrypt data on your side using BASE64
byte[] bytesEncoded = Base64.encodeBase64(str .getBytes());
System.out.println("ecncoded value is " + new String(bytesEncoded));

// Decrypt data on other side, by processing encoded data
byte[] valueDecoded= Base64.decodeBase64(bytesEncoded );
System.out.println("Decoded value is " + new String(valueDecoded));

আপনি জাভা এবং জাভাস্ক্রিপ্ট ব্যবহার করে বেস 64 এনকোডিংয়ে বেস 64 এনকোডিং সম্পর্কে আরও বিশদ জানতে পারেন ।


নোট এই স্ট্রিং ধরে নেয় যে ডিফল্ট অক্ষরসেট মধ্যে এনকোড করা আছে
কারবি

6

আপনি যদি কমপক্ষে ৪.১ সংস্করণে স্প্রিং ফ্রেমওয়ার্ক ব্যবহার করেন তবে আপনি org.springframework.util.Base64Utils শ্রেণিটি ব্যবহার করতে পারেন :

byte[] raw = { 1, 2, 3 };
String encoded = Base64Utils.encodeToString(raw);
byte[] decoded = Base64Utils.decodeFromString(encoded);

এটি জাভা 8 এর বেস 64, অ্যাপাচি কমন্স কোডেক বা জ্যাকএক্সবি ডেটাটাইপ কনভার্টরকে উপলভ্য করবে যা উপলব্ধ রয়েছে তার উপর নির্ভর করে।


4

জাভা 8 সহ সাধারণ উদাহরণ:

import java.util.Base64;

String str = "your string";
String encodedStr = Base64.getEncoder().encodeToString(str.getBytes("utf-8"));

3

জাভা 7 এ আমি এই পদ্ধতিটি কোড করেছিলাম

import javax.xml.bind.DatatypeConverter;

public static String toBase64(String data) {
    return DatatypeConverter.printBase64Binary(data.getBytes());
}

জাভা 7 এবং 8 এর অধীনে কাজ করে তবে জাভা 9 নয়, সবচেয়ে খারাপ, আপনি জাভা 7 বা 8 এর অধীনে এটি তৈরি করলে এটি তৈরি হবে এবং তারপরে আপনি জাভা 9 এর অধীনে রানটাইম এ একটি ক্লাসডেফ নটফাউন্ডএক্সপশন পাবেন
স্টিফেন এম


1

আমি নিম্নলিখিত কোড স্নিপেট দিয়ে চেষ্টা করেছি। এটা ভাল কাজ করে। :-)

com.sun.org.apache.xml.internal.security.utils.Base64.encode("The string to encode goes here");

0
public String convertImageToBase64(String filePath) {
    byte[] fileContent = new byte[0];
    String base64encoded = null;
    try {
        fileContent = FileUtils.readFileToByteArray(new File(filePath));
    } catch (IOException e) {
        log.error("Error reading file: {}", filePath);
    }
    try {
        base64encoded = Base64.getEncoder().encodeToString(fileContent);
    } catch (Exception e) {
        log.error("Error encoding the image to base64", e);
    }
    return base64encoded;
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.