آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

قرار دادن عکس در دیتا بیس

peyman1104  10 سال پیش  10 سال پیش
+6 0

با سلام یه سوال دارم ایا عکسهارو تو دیتابیس قرار بدیم  کار منطقی هست یا نه بهترین راه چیه ممنون اگه اموزش اون رو بگید

0 0
سوال خوبیه این سوال منم هست که اطلاعاتی مانند عکس و یا فیلم و یا صفحات html را ایا می توان درون دیتابیس قرار داد و اگر جواب اری است چگونه؟ ایا تفاوتی با اطلاعاتی مانند تکست دارد و یا خیر یه لایک هم برای پیمان به خاطر سوال خوبش. (10 سال پیش)
0 0
سلام کسی دوست نداره جواب سوال ما رو بده ؟ (10 سال پیش)
+1 0
نه ، بهترین کار نگه داری آدرس تصاویر در دیتابیس و ذخیره فایل ها در حافظه دستگاه است . (10 سال پیش)
0 0
در مورد اپلیکیشن هایی که دیتا بیسشون انلاین هست این روند چه جوری اقای کاشیزاده ؟ به طور مثال وقتی فردی وارد یک صفحه می شه که حاوی تکست و تصویر هست در همان لحظه تکست از دیتا بیس سمت سرور گرفته می شود و روی دیتا بیس گوشی ذخیره می شود و عکس هم دانلود می شود و در یک فولدر قرار می گیرد و نمایش داده می شود؟ یا راه حل بهتری هم هست؟ (10 سال پیش)
0 0
سلام ممنون از دوستان که جواب می دید اقای محمد حسین میشه اموزش کامل ادرس دادن تصاویر در دیتا بیس رو بدید (10 سال پیش)
0 0
آموزش خاصی نداره شما آدرس تصاویر رو در یک جدول از دیتابیس نگه داری میکنید و موقع نیاز استفاده . (10 سال پیش)
0 0
اقای محمد حسین مثلا من یه عکس دارم داخل پوشه drawable حالا اگه بخوام ادرس بهش بدم چجوریه؟ (10 سال پیش)
 برای این سوال 4 پاسخ وجود دارد.
پاسخ به سوال 
msadesign  10 سال پیش
+2 0

سلام تصویر رو میشه به صورت آرایه داخل دیتابیس ذخیره کرد.ولی خب چه کاریه آخه

دقیقا همین سئوال تو یکی از مصاحبه هایی که تا حالا داشتم ازم پرسیدن؟

طرف خیلی جدی بهم گفت تصاویر رو تو دیتابیس ذخیره کنیم بهتره منم یکم بهش نگاه کردم گفتم مگه داریم چنین چیزی اونم گیر داده بود که داریم من گفتم اصلا نوع داده ای تصویر تو دیتابیس نیست که یهو یادم افتاد تو دوران دانشجویی یه مقاله خونده بودم که تصویر یک آرایه از پیکسل هاست ولی کاری کاملا احمقانه است که بخوای تصاویر رو توی دیتابیس ذخیره کنی.

پاسخ به سوال 
BrotherV  10 سال پیش
+1 0

تصویر را میشه به صورت Blob در دیتابیس ذخیره کرد فقط کافیه در دیتابیس یک Blob تعریف کرد و عکس را بهش Attach کرد. و به صورت زیر هم میشه عکس ذخیره شده در دیتا بیس را فراخوانی کرد.

byte[] pictureBmp = cursor.getBlob(cursor.getColumnIndex("Picture_Table"));
Bitmap bmp = BitmapFactory.decodeByteArray(pictureBmp, 0, pictureBmp.length);
image.setImageBitmap(bmp);
cursor.close();
0 0
ایا عکس ذخیره شده در دیتا بیس کار درسی هست یا نه اقای کاشانی گفتن که ادرس عکس رو بدید تو دیتابیس بهتره الان من دنبال اینم چطور ادرس عکس رو بدم تو دیتا بیس و چطوری فراخوانی کننم ممنون (10 سال پیش)
0 0
آدرس عکس را میتونید به صورت تکست در دیتابیس قرار بدید و به صورت (آدرس ذخیره شده)img.setImageResource میتونید عکس را نمایش بدید. بستگی داره منظور از عکس چی باشه. تصاویر یا همون asset های برنامه که برای دکمه یا ابزارها استفاده میکنید بهتره در دیتابیس نباشه اما تصاویر دیگه را میتونید ذخیره کنید. این بستگی به خودتون و برنامتون داره. (10 سال پیش)
0 0
اولا ممنون که جواب منو می دید منظور من اینه چند تا عکس تو پوشه دروابل دارم مثلا a1,a2,a3 حالا چطوری ادرس اینهارو به دیتابیس بدم و چطوری تو برنامم فراخوانی شون کنم (10 سال پیش)
پاسخ به سوال 
BrotherV  10 سال پیش
+3 0

امیدوارم که منظور شما را درست فهمیده باشم. اگر میخواهید آدرس فقط چند تا تصویر را داشته باشید اصلا پیشنهاد خوبی نیست که از دیتابیس برای اینکار استفاده کنید.  اما من راه استفاده از دیتابیس را هم میگم. روش اول استفاده از کلاس سراسری یا همون G هست. شما میتونید آدرس تصاویر را در یک آرایه از نوع int قرار بدید و هر جا که خواستید فراخوانی کنید.

 public class G extends Application {
    public static final int[] ITEM_DRAWABLES = { R.drawable.facebook,
	    R.drawable.twitter, R.drawable.flickr, R.drawable.instagram,
	    R.drawable.skype, R.drawable.github };

	    .
	    .
}

public class ActivityMain extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        	super.onCreate(savedInstanceState);
	        setContentView(R.layout.activity_main);
	
	        ImageView img = (ImageView) findViewById(R.id.img1);
	        img.setImageResource(G.ITEM_DRAWABLES[0]);
	
	    }
}

در روش دوم آدرس را به صورت رشته اون هم به صورت زیر در دیتابیس قرار میدیم.

 String imageUri = "@drawable/myimage1";  // myimage.png تصویر مورد نظر شما خواهد بود
@drawable/myimage2
@drawable/myimage3
ImageUri rowId
drawavle/myimage1@ 1
drawavle/myimage2@ 2
drawavle/myimage3@ 3


این رشته را برای تمامی عکسها به همین نحو در جدول آدرس تصاویر در  دیتابیس قرار میدیم وبرای فراخوانیش هم به صوررت زیر از دیتابیس میخونیم و تصویر را بر روی imageview لود میکنیم.

int row = 1; // اشاره به سطر ی از جدول دارد
String table = "نام جدول تصاویر";
Cursor cursor = myDatabase.rawQuery("select * from " + table
				+ " where rowId=" + row, null);
cursor.moveToFirst();
String imageUri = cursor.getString(cursor.getColumnIndex("ستون آدرس تصاویر"));

int imageResource = getResources().getIdentifier(imageUri, null, getPackageName());
imageview= (ImageView)findViewById(R.id.imageView);
Drawable drawable = getResources().getDrawable(imageResource);
imageView.setImageDrawable(drawable);

 

0 0
ذخیره ی تصاویر در دیتا بیس چه مواقعی پیشنهاد می شه ؟به طور مثال اگر یک اپ داشته باشیم که در ان یک لیست ویو وجود دارد و در هر یک از ویو ها یک تصویر نشان داده می شود و بعد وارد شدن به ان ویو ما تصاویر و تکست داریم و این تصاویر باید از سرور دریافت شوند شما پیشنهاد می کنید که تصاویر را در یتا بیس سمت سرور تعریف کنیم؟ (10 سال پیش)
0 0
اگر سرور دارید برای کم کردن حجم برنامه بهتره تصاویر و اطلاعات سمت سرور باشه مثل اپ بازار. اما اگر سرور ندارید میتونید در دیتا بیس محلی اطلاعات را تعریف کنید. (10 سال پیش)
0 0
سرور دارم و سوال من در مورد بهترین نحوهی دریافت تصاویر از سرور می باشد به طور مثال دریافت تصاویر که در دیتابیس سرور ذخیره شده اند و ذخیره کردن انها در دیتا بیس در گوشی هنگامی که کار بر از انها استفاده میکند و یا اینکه عکس ها در سرور در دیتا بیس دخیره نشوند و تنها زمانی که لازم است توسط گوشی دانلود شوند و در مکانی در گوشی ذخیره شوند به نظر شما کدام یک بهتر است؟ (10 سال پیش)
0 0
نمون اقای BrotherV اما من باز متوجه نشدم چه کار کنم اول باید یه عکس اسمشو داخل دیتابیس بزاریم به این صورت drawavle/myimage1@ باید باشه تو دیتا بیس و در ضمن نوع دیتا که برا دیتا بیس انتخاب می کنیم نوع تکست باشه درسته ؟ اما از این کدها نتونستم استفاده کنم (10 سال پیش)
+1 0
نگاه کنید، اگر فرض کنیم شما بخواید از پوشه drawable یک عکس را بر روی ImageView ست کنید به صورت زیر عمل میکردیم: (img.setImageResouce(R.drawable.myimage1 اما مقدار R.drawable.image1 یک مقدار عددی هست که به آدرس عکس اشاره میکنه و ما نمیدونیم که این آدرس چه عددی هست. هر سری که فایل R تولید میشه مقادیر تغییر میکنن. برای همین اگر بخواید آدرس عکس را ذخیره کنید به صورت (نام عکس/drawable@) را در دیتابیس ذخیره میکنیم و مقدار تکست را برمیگردونیم و در متغیر imgUri قرار میدیم. سپس آدرس عکس را در متغیر imageResource که از جنس int هست قرار میدیم. و در نهایت عکس موجود در پوشه drawable را در متغیری از نوع drawable قرار میدیم و بر روی imageView عکس را ست میکنیم. (10 سال پیش)
0 0
نگاه کنید، اگر فرض کنیم شما بخواید از پوشه drawable یک عکس را بر روی ImageView ست کنید به صورت زیر عمل میکردیم: (img.setImageResouce(R.drawable.myimage1 اما مقدار R.drawable.image1 یک مقدار عددی هست که به آدرس عکس اشاره میکنه و ما نمیدونیم که این آدرس چه عددی هست. هر سری که فایل R تولید میشه مقادیر تغییر میکنن. برای همین اگر بخواید آدرس عکس را ذخیره کنید به صورت (نام عکس/drawable@) را در دیتابیس ذخیره میکنیم و مقدار تکست را برمیگردونیم و در متغیر imgUri قرار میدیم. سپس آدرس عکس را در متغیر imageResource که از جنس int هست قرار میدیم. و در نهایت عکس موجود در پوشه drawable را در متغیری از نوع drawable قرار میدیم و بر روی imageView عکس را ست میکنیم. (10 سال پیش)
پاسخ به سوال 
peyman1104  10 سال پیش
0 0

سلام مهندس این کد ها رو کجا بزارم  String imageUri ="@drawable/myimage1" تصویر مورد نظر شما خواهد بود و کد زیر رو کجا بزارم تو کلاس دیتابیس یا جای دیگه ؟و منظور شما از  myDatabas  اینه همون اسم دیتابس هست که من mydb گرفتم تو کلاس دیتابیس؟

 int row =1;// اشاره به سطر ی از جدول داردString table ="نام جدول تصاویر";Cursor cursor = myDatabase.rawQuery("select * from "+ table
				+" where rowId="+ row,null);
cursor.moveToFirst();String imageUri = cursor.getString(cursor.getColumnIndex("ستون آدرس تصاویر"));int imageResource = getResources().getIdentifier(imageUri,null, getPackageName());
imageview=(ImageView)findViewById(R.id.imageView);Drawable drawable = getResources().getDrawable(imageResource);
imageView.setImageDrawable(drawable);

 

0 0
کسی راهنمای کنه ممنون (10 سال پیش)
0 0
راهنمایی بیشتر می خوامم ممنون (10 سال پیش)
0 0
این کد را نیاز نیست جایی بزارید این فقطط نشوندهنده اینه که ادرس‌به صورت رشته باید به این صورت باشه و myDatabase همون mydb شما هست.شما یک بار بدون دیتابیس یک رشته به صورت فوق در برنامتون بزارید و عکس را لود کنید بعد از موفق شدن دیتابیس را اعمال کنید. (10 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .