رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

تبدیل عکس به صورت هشت بیتی


پست های پیشنهاد شده

سلام دوستان من میخواستم تو اندروید برنامه بنویسم که عکس  BMP به hex صورت 8 بیتی تبدیل کنه ممنون میشم اگه راهنمایم کنید.
در کل میخوام عکسو تبدیل کنم به یه آرایه از هگز و با بلوتوث ارسال کنم نمونه برنامه تحت ویندوزشم GLCD هست . مشکل من الان فقط در تبدیل به کد هگز 8 بیتی هست

لینک ارسال
به اشتراک گذاری در سایت های دیگر
در 5 ساعت قبل، okpnz گفته است :

سلام دوستان من میخواستم تو اندروید برنامه بنویسم که عکس  BMP به hex صورت 8 بیتی تبدیل کنه ممنون میشم اگه راهنمایم کنید.
در کل میخوام عکسو تبدیل کنم به یه آرایه از هگز و با بلوتوث ارسال کنم نمونه برنامه تحت ویندوزشم GLCD هست . مشکل من الان فقط در تبدیل به کد هگز 8 بیتی هست

 

این کد رو نگاه بندازید.تصویر رو تبدیل به آرایه از Base64 میکند

  private String Encode(String img){

        String encode=null;
        imgPath=img;
        BitmapFactory.Options options = null;
        options = new BitmapFactory.Options();
        options.inSampleSize = 3;
        bitmap = BitmapFactory.decodeFile(imgPath,
                options);
        ByteArrayOutputStream stream = new ByteArrayOutputStream();
        // Must compress the Image to reduce image size to make upload easy
        bitmap.compress(Bitmap.CompressFormat.JPEG, 50, stream);
        byte[] byte_arr = stream.toByteArray();
        // Encode Image to String
        encodedString = Base64.encodeToString(byte_arr, 0);
        encode=encodedString;
        return  encode;

    }

 

 

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر
در در 1395/11/12, 10:46:19، okpnz گفته است :

سلام دوستان من میخواستم تو اندروید برنامه بنویسم که عکس  BMP به hex صورت 8 بیتی تبدیل کنه ممنون میشم اگه راهنمایم کنید.
در کل میخوام عکسو تبدیل کنم به یه آرایه از هگز و با بلوتوث ارسال کنم نمونه برنامه تحت ویندوزشم GLCD هست . مشکل من الان فقط در تبدیل به کد هگز 8 بیتی هست

سلام
1- من چطور میتونم از 0XFF در برنامه نویسی اندروید استفاده کنم یعنی منطورم اینه که بتونم این متغییر در یک بایت ذخیره کنم

کد HTML:
try {
    for (int x = 0; x < width; ++x) {
        for (int y = 0; y < height; ++y) {
            // get pixel color
            pixel = photo.getPixel(x, y);
            A = Color.alpha(pixel);
            R = Color.red(pixel);
            G = Color.green(pixel);
            B = Color.blue(pixel);
            int gray = (int) (0.2989 * R + 0.5870 * G + 0.1140 * B);
            // use 128 as threshold, above -> white, below -> black
            if (gray >128) {
                A=1;
            }
            else{
                A= (byte)0X00;
            }

         
            rgbtograyarray[y][x] =A;
        }
    }

for(i=0;i<photo.getWidth();i++)
{
    for(j=0;j<28;j++) {
        Array[j][i] = rgbtograyarray[j][i];
    }
}
for(i=0;i<photo.getWidth();i++)
{
    for(j=28;j<32;j++)
    {
        Array[j][i]=0;
    }
}
byte b=0;
for(i=0;i<photo.getWidth();i++)
{
    for(j=0;j<4;j++)
    {
        for(k=0;k<8;k++)
        {
            b=(byte)(b|((Array[(j*8)+k][i])<<k));

        }
        FinalArray[j][i]=b;

    }
}

در بالا اول من عکسو به خاکستری تبدیل کردم و در نهایت مقدار 0 یا 1 در آرایه دخیره میکنم که میخوام بجای 1 از 0XFF استفاده کنم و در آخر هم اونجا که اعداد شیف داده میشن میخوام یک بایت بدست بیاد که الان -1 میده میشه راهنماییم کنید؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر
در 6 دقیقه قبل، okpnz گفته است :

سلام
1- من چطور میتونم از 0XFF در برنامه نویسی اندروید استفاده کنم یعنی منطورم اینه که بتونم این متغییر در یک بایت ذخیره کنم

کد HTML:

try {
    for (int x = 0; x < width; ++x) {
        for (int y = 0; y < height; ++y) {
            // get pixel color
            pixel = photo.getPixel(x, y);
            A = Color.alpha(pixel);
            R = Color.red(pixel);
            G = Color.green(pixel);
            B = Color.blue(pixel);
            int gray = (int) (0.2989 * R + 0.5870 * G + 0.1140 * B);
            // use 128 as threshold, above -> white, below -> black
            if (gray >128) {
                A=1;
            }
            else{
                A= (byte)0X00;
            }

         
            rgbtograyarray[y][x] =A;
        }
    }

for(i=0;i<photo.getWidth();i++)
{
    for(j=0;j<28;j++) {
        Array[j][i] = rgbtograyarray[j][i];
    }
}
for(i=0;i<photo.getWidth();i++)
{
    for(j=28;j<32;j++)
    {
        Array[j][i]=0;
    }
}
byte b=0;
for(i=0;i<photo.getWidth();i++)
{
    for(j=0;j<4;j++)
    {
        for(k=0;k<8;k++)
        {
            b=(byte)(b|((Array[(j*8)+k][i])<<k));

        }
        FinalArray[j][i]=b;

    }
}

در بالا اول من عکسو به خاکستری تبدیل کردم و در نهایت مقدار 0 یا 1 در آرایه دخیره میکنم که میخوام بجای 1 از 0XFF استفاده کنم و در آخر هم اونجا که اعداد شیف داده میشن میخوام یک بایت بدست بیاد که الان -1 میده میشه راهنماییم کنید؟

 

بزارش توی فایل res/values/string.xml و به ایه صورت تست کنید

 <string name="fa_glass">&#xf000;</string>

 

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر
در 46 دقیقه قبل، Farzad Sarseifi گفته است :

 

بزارش توی فایل res/values/string.xml و به ایه صورت تست کنید


 <string name="fa_glass">&#xf000;</string>

 

 

امکانش هست بیشتر توضیح بدید ممنون میشم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...