PDA

View Full Version : ذخیره عکس در دیتابیس



roboman78
شنبه 16 خرداد 1394, 23:57 عصر
سلام دوستان عزیز
چطور میشه تو دیتابیس آماده عکس ذخیره کرد و توی لیست یا گرید نشون داد
منظورم اینه مثل متن باشه همونطوری که مثلا هزار تا متنو از دیتابیس میخونیم و تو لیست نشون میدیم
آیا عکسو باید تو دیتابیس ریخت یا از drawable خوند؟

JYasProgramer
یک شنبه 17 خرداد 1394, 08:48 صبح
سلام
اینجا (http://stackoverflow.com/questions/9357668/how-to-store-image-in-sqlite-database)
اینجا (http://stackoverflow.com/questions/11790104/how-to-storebitmap-image-and-retrieve-image-from-sqlite-database-in-android)
رو مطالعه کن دوست من

roboman78
یک شنبه 17 خرداد 1394, 18:25 عصر
ممنون ولی من سوالم اینه که آیا راهی هست که عکسو با نرم افزارایی مثل sqlite expert به دیتابیس اد کرد؟

JYasProgramer
یک شنبه 17 خرداد 1394, 18:57 عصر
خیر نمیشه
چرا که دیتابیسی که برای برنامه شماست فقط برنامه شما قابلیت دسترسی به اونو داره

roboman78
یک شنبه 17 خرداد 1394, 19:30 عصر
خب این که مشخصه منظورم اینه ما مگه تکست تو دیتابیس نمیریزسم بعد وارد assetes میکنیم وبه عنوان دیتابیس خارجی میخونیمش و مثلا لیست جک هارو تو لیست نشون میدیم
حالا بجای جک باشه عکس آیا میشه؟؟؟؟

JYasProgramer
دوشنبه 18 خرداد 1394, 16:01 عصر
بله میشه
شما میتونی در هر سطر دیتابیست تصویر ذخیره کنی و هرجایی که بخایی میتونی بخونیشون
فقط اون فیلدی که قراره تصاویرتو شامل شه باید از نوع blob باشه

gjmkdyttyhujk
دوشنبه 18 خرداد 1394, 17:38 عصر
منظور roboman78 این هست که تصاویر رو مستقیم کپی کنیم و بریزیم تو دیتابیس. که این کار شدنی نیست. چون نوع داده هایی که دیتابیس با اونها داده ذخیره می کنه برای تصاویر مناسب نیست. و حتما باید تصاویر به اون فرمت ها تبدیل بشوند و بعد ذخیره بشوند.

hamedg1366
دوشنبه 18 خرداد 1394, 17:52 عصر
دوست عزیز از یه تجربه برات میگم، تا جائی که می تونی عکس رو توی دیتابیس ذخیره نکن ؛ اگه برنامت میخوای آفلاین باشه عکس هات رو بریز توی پوشه و اسمش رو توی دیتایس ذخیره کن ، اگرم میخوای آنلاین باشه برنامت که تصاویر رو دانلود کن و فقط اسمشون رو بذار توی دیتابیس.


از هر برنامه نویس حرفه ای بپرسی هزار تا دلیل میاره برات که عکس ذخیره نکنی توی دیتابیس

JYasProgramer
دوشنبه 18 خرداد 1394, 18:14 عصر
منظور roboman78 این هست که تصاویر رو مستقیم کپی کنیم و بریزیم تو دیتابیس. که این کار شدنی نیست. چون نوع داده هایی که دیتابیس با اونها داده ذخیره می کنه برای تصاویر مناسب نیست. و حتما باید تصاویر به اون فرمت ها تبدیل بشوند و بعد ذخیره بشوند.

منظور رو متوجه شدم بله میشه تصویر رو در دیتابیس ذخیره کرد و مشکلی پیش نمیاد



از هر برنامه نویس حرفه ای بپرسی هزار تا دلیل میاره برات که عکس ذخیره نکنی توی دیتابیس

چه دلیلی توجیه کننده ای هست که تصویر رو در دیتابیس ذخیره نکنیم؟؟؟

gjmkdyttyhujk
دوشنبه 18 خرداد 1394, 19:15 عصر
منظور رو متوجه شدم بله میشه تصویر رو در دیتابیس ذخیره کرد و مشکلی پیش نمیاد

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

omid_cr77
دوشنبه 18 خرداد 1394, 20:31 عصر
یعنی چی این حرف. تا جایی که من می دونم تصاویر رو مستقیم نمیشه در دیتابیس ذخیره کرد. باید حتما تبدیل به فرمت های پشتیبانی کننده توسط دیتابیس بشوند.

روش blob مناسب نیست و توصیه نمیشه.شما اسم عکس ها تو داخل دیتابیس ذخیره کن و عکس ها تو داخل پوشه drawable بزار.اسم عکس ها تو از دیتابیس بخون و کد بزن که بره پوشه drawable و این عکس با این اسمو بخونه.روش اصولیش اینه.

matarata
دوشنبه 18 خرداد 1394, 22:05 عصر
دوست عزیز از یه تجربه برات میگم، تا جائی که می تونی عکس رو توی دیتابیس ذخیره نکن ؛ اگه برنامت میخوای آفلاین باشه عکس هات رو بریز توی پوشه و اسمش رو توی دیتایس ذخیره کن ، اگرم میخوای آنلاین باشه برنامت که تصاویر رو دانلود کن و فقط اسمشون رو بذار توی دیتابیس.


از هر برنامه نویس حرفه ای بپرسی هزار تا دلیل میاره برات که عکس ذخیره نکنی توی دیتابیس

منبعی برای آموزش واکشی عکس از روی هاست داخل نرم افزار اندروید دارید؟ مثلا من یه نرم افزار دارم میخوام هر روز عکس های جدید روی هاست بریزم و کاربر با وصل شدن به نت توی گوشی عکسهای جدید رو بتونه دانلود کنه. نمیدونم چجوری عکسهارو از هاست بگیرم.

roboman78
سه شنبه 19 خرداد 1394, 11:46 صبح
ممنون از پاسخ های خوبتون

در پاسخ به
matarata (http://barnamenevis.org/member.php?358607-matarata) هم باید بگم میتونی از xml یا json استفاده کنی

JYasProgramer
سه شنبه 19 خرداد 1394, 19:53 عصر
یعنی چی این حرف. تا جایی که من می دونم تصاویر رو مستقیم نمیشه در دیتابیس ذخیره کرد. باید حتما تبدیل به فرمت های پشتیبانی کننده توسط دیتابیس بشوند.


آقا میشه مشکلی نیس این وسط من امتحان کردم

gjmkdyttyhujk
سه شنبه 19 خرداد 1394, 21:18 عصر
آقا میشه مشکلی نیس این وسط من امتحان کردم

عجب.یعنی شما میگی که عکس رو میشه از ویندوز کپی کرد و داخل یکی از سلول های دیتابیس paste کرد؟

payam94
چهارشنبه 20 خرداد 1394, 06:53 صبح
ذخیره تصاویر در SQL Server (http://www.developercenter.ir/forum/showthread.php?1136-%D8%B0%D8%AE%DB%8C%D8%B1%D9%87-%D8%AA%D8%B5%D8%A7%D9%88%DB%8C%D8%B1-%D8%AF%D8%B1-SQL-Server)

JYasProgramer
چهارشنبه 20 خرداد 1394, 09:54 صبح
عجب.یعنی شما میگی که عکس رو میشه از ویندوز کپی کرد و داخل یکی از سلول های دیتابیس paste کرد؟


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

gjmkdyttyhujk
چهارشنبه 20 خرداد 1394, 10:13 صبح
بله در آندروید با کد زدن میشه

جسارت نشه ها ولی دوحالت وجود داره. یا شما نمی فهمی یا خودت رو به نفهمی زدی.

tux-world
چهارشنبه 20 خرداد 1394, 11:47 صبح
جسارت نشه ها ولی دوحالت وجود داره. یا شما نمی فهمی یا خودت رو به نفهمی زدی.

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

gjmkdyttyhujk
چهارشنبه 20 خرداد 1394, 12:44 عصر
دوست عزیز شما حق ندارید به کسی توهین کنید. ایشون فرمودن که بزرگترین اشتباه شما برنامه نویسان تازه وارد این هستش فکر میکنید دیگه همه چی میفهمید. عکس رو هیچ وق تو دیتابیس نمیریزن. بخوام توضیح بدم باید چند ساعت قوانین دیتابیس پرفورمنس و هزاران مشکل رو براتون شرح بدم. بنابراین این کار رو نکنید. حالا زورکی هم نیست خواستی بکنی به خودت ربط داره. عکس رو به base64 تبدیل کن بریز تو دیتابیس بعد این که اون رو خوندی base64 رو تبدیل به عکس کن. عواقبش به عهده خودت

من به کسی توهین نکردم. ولی سوال کننده پرسیده بود که "
خب این که مشخصه منظورم اینه ما مگه تکست تو دیتابیس نمیریزسم بعد وارد assetes میکنیم وبه عنوان دیتابیس خارجی میخونیمش و مثلا لیست جک هارو تو لیست نشون میدیم
حالا بجای جک باشه عکس آیا میشه؟؟؟؟" . دوست عزیزمون ​
JYasProgramer (http://barnamenevis.org/member.php?355870-JYasProgramer)
نگفتند که این کار نمیشه. اصلا به حرف هایی که ما می گفتیم توجهی نمی کردند و می گفتند که با کد نویسی و فلان و بهمان. به جای اینکه سوال کننده یه چیزهایی یاد بگیره ایشون حرف های مبهمی زدند. من تو پست 7 هم توضیح دادم که منظور سوال کننده چی هست ولی ایشون یه جورایی حالا خواسته یا ناخواسته دارند سوال کننده رو گمراه می کنند.

JYasProgramer
چهارشنبه 20 خرداد 1394, 12:49 عصر
نگفتند که این کار نمیشه. اصلا به حرف هایی که ما می گفتیم توجهی نمی کردند و می گفتند که با کد نویسی و فلان و بهمان. به جای اینکه سوال کننده یه چیزهایی یاد بگیره ایشون حرف های مبهمی زدند. من تو پست 7 هم توضیح دادم که منظور سوال کننده چی هست ولی ایشون یه جورایی حالا خواسته یا ناخواسته دارند سوال کننده رو گمراه می کنند.

خب کد رو که نمیشه راست تحویل داد من منابع رو در اختیار قرار دادم به من چه که یاد نداری کد بزنی از روی کدی که حتی آماده شده

gjmkdyttyhujk
چهارشنبه 20 خرداد 1394, 12:57 عصر
خب کد رو که نمیشه راست تحویل داد من منابع رو در اختیار قرار دادم به من چه که یاد نداری کد بزنی از روی کدی که حتی آماده شده

JYas جان من نمیگم که کد رو راحت در اختیار قرار بدید. من میگم که ایشون یه سوال مبتدیانه پرسیده بود، شما ولی جواب مرتبط با سوالش ندادی. من تمام حرفم اینه که به کسی که سوال میاد می پرسه گمراه کننده جواب ندیم. همین.

JYasProgramer
چهارشنبه 20 خرداد 1394, 13:19 عصر
روش قرار دادن تصویر در یک فیلد در دیتابیس که بارها هم توضیح دادم در پست های مختلف:
تصویر رو به آرایه ای از بایت تبدیل میکنی
سپس اون آرایه رو در فیلدی از نوع blob ذخیره میکنی
هرموقه خواستی اون تصویرو در ImageView نمایش بدیی اون آرایه از بایت رو واکشی می کنی
سپس اون آرایه از بایت رو مستقیما یه تصویر تبدیل میکنی و درنهایت لود میکنی

gjmkdyttyhujk
چهارشنبه 20 خرداد 1394, 13:35 عصر
روش قرار دادن تصویر در یک فیلد در دیتابیس که بارها هم توضیح دادم در پست های مختلف:
تصویر رو به آرایه ای از بایت تبدیل میکنی
سپس اون آرایه رو در فیلدی از نوع blob ذخیره میکنی
هرموقه خواستی اون تصویرو در ImageView نمایش بدیی اون آرایه از بایت رو واکشی می کنی
سپس اون آرایه از بایت رو مستقیما یه تصویر تبدیل میکنی و درنهایت لود میکنی

خودت هم می دونی که منظور سوال کننده این نبود. حالا باز هی تاکید کن.

dalmif
چهارشنبه 20 خرداد 1394, 13:50 عصر
سلام دوستان عزیز
چطور میشه تو دیتابیس آماده عکس ذخیره کرد و توی لیست یا گرید نشون داد
منظورم اینه مثل متن باشه همونطوری که مثلا هزار تا متنو از دیتابیس میخونیم و تو لیست نشون میدیم
آیا عکسو باید تو دیتابیس ریخت یا از drawable خوند؟

دوست عزیز شما می تونی از drawable بخونی چون هم راحته و بهتر هم هست. شما اسم رو ذخیره کنید همونطور که دوستانمون گفتن استفاده کنید:لبخندساده: