PDA

View Full Version : مسیر عکس در silverlight



mohammad meta
یک شنبه 13 تیر 1389, 10:51 صبح
سلام
بچه ها کسی می تونه به من یاد بده تو silverlight چجوری مسیر image را باید به image source بدیم ؟من وقتی این مینویسم از میسر عکس error میگیره.


Image img = new Image(); img.VerticalAlignment = VerticalAlignment.Center; img.HorizontalAlignment = HorizontalAlignment.Center; img.Source = @"C:\New folder\TransportationHelp0076.jpg";

taghvajou
یک شنبه 13 تیر 1389, 11:13 صبح
سلام به همه
خدمت عرض کنم که alh باید بعد از اضافه کردن تصویر به سالوشن مسیر بدی، یعنی ADDnewItem کن بعد آدرس نسبی بدین.

اما یه نکته دیگه که ممکنه بهش بربخورین که وقتی آدرس نسبی تو ایمیج سورس تو زمل (XAML) بدی،
تصویر نمایان میشه ولی اگه همین مسیر از سالوشن تو سورس بدین، نتیجه بخش نیست.

علتش اینکه که ایمیج سورس در واقع باید از یه بیت مپ ایمیج تغذیه بشه.
وقتی شما تو زمل (XAML) آدرس تصویر تو سالوشن رو میدین، خودش یه نمونه از بیت مپ ایمیج درست میکنه و آدرس (Uri) را فید میکنه و تولید کرده و بعد در سورس اون ایمیج میریزه!

یه

mohammad meta
یک شنبه 13 تیر 1389, 11:22 صبح
ببین دوست عزیز من وقتی 10 تا عکس 500 mg ای را به image برنامه Add می کنم زمان کامپایل error کمبود storage میده من نمی دونم دلیلش چیه ؟
شما می دونید ؟لطفا راهنمایی کنید.

taghvajou
یک شنبه 13 تیر 1389, 11:27 صبح
فی الواقع، این یکی از نقص و ضعفهای کاربردی سیلورلایته! البته ناشی از WCF-silverlight-enabled میشه!

نه فقط تو عکس، بلکه شما اگه یهو بخوای یه ماهیت درشت با چندین ویژگی مثلا مشخصات کاربر (مثلا با 30 تا پراپرتی) رو هم از دیتابیس بکشی، می بینی که بیش از پونصد و ششصد تا نمیتونه!

چه برسه اونهمه عکس با حجم بالا!

یک کلاس بنویس و مسئول لود رو متناسب با حجم به اون کلاس بسپار که چند تا چند تا ویا حتی یکی یکی واشکی کنه و بهت تو سیلورلایت تحویل بده!

متاسفانه این مشکل رو نمیشه حل کرد باید دورش بزنی!

taghvajou
یک شنبه 13 تیر 1389, 11:39 صبح
ولی محمد، من هنوز نظرم بر اینه که راهنمای برنامه تو به جای اینکه به عکس تبدیل کنی و عکسها رو بخوای لود کنی، از متن یا اچ تی ام ال استفاده کنی، سبکتر و مهندسی تره! با قابلیت پرینت و انتقال و سبک!

mohammad meta
یک شنبه 13 تیر 1389, 11:40 صبح
ممنون
منم خواستم همین کار را انجام دهم .یعنی در زمان runtime دونه دونه عکس بهش بدم ولی متاسفانه هر کاری می کنم مسیر فایل ایراد میگیره .
نمی دونم در silver light مسیر نسبی چه جوری میدن
به دلیل اینکه من تازه با silverlight آشنا شدم اصلا نمی دونم عکس را چجوری به صورت dynamic به پروپه addکنم اگه شما راهنماییم کنید خیلی خیلی ممنون میشم.

taghvajou
یک شنبه 13 تیر 1389, 11:42 صبح
یه بار دیگه با دقت بخون پست قبلیمو!

taghvajou
یک شنبه 13 تیر 1389, 11:43 صبح
لود عکس و غیره، سرجاش!
ولی برای راهنما (Help) از این روش استفاده نکن!

mohammad meta
یک شنبه 13 تیر 1389, 11:46 صبح
ولی محمد، من هنوز نظر بر اینه که راهنمای برنامه تو به جای اینکه به عکس تبدیل کنی و عکسها رو بخوای لود کنی، از متن یا اچ تی ام ال استفاده کنی، سبکتر و مهندسی تره! با قابلیت پرینت و انتقال و سبک!

دوست خوب من شما قرار شد به من آموزش بدید آموزش ندادید منم مجبور شدم از این راه استفاده کنم.
ضمنا وقتی فایل word را به html تبدیل می کنم زیبایی نوشته ،font ، image از بین میره
راهی برای بر طرف کردن این مشکل هست ؟

taghvajou
یک شنبه 13 تیر 1389, 11:52 صبح
گل پسر! من که هنوز نمردم که میگی قرار بــــــــــــود!
واسه اموزش باید با حوصله بشینم، عکس و کد آماده کنم! چشم! امروز تقدیم میکنم.

عجله کار شیطونه! اول خوب مهندسی کن کارتو بعد به کار بگیر!

دوم اینکه
علی القاعده تو تبدیل ورد به اچ تی ام ال نباید چنین اتفاقی بیفته! چرا که تمام پراپرتیهای کلاسهای تکست بلاک و سایر اشیا موجود تو ورد هستند، تو تکهای اچ تی ام ال هم پیدا میشند! میخوای یک از اینترنت یه کانورتور یپدا کن و قال قضیه رو بکن!

ولی اگه بازهم میگی نه! یه کاری کن ! فایل ووردتو به پی دی اف تبدیل کن تا پی دی اف رو لود کنیم.

در مجموع توصیه میکنم از اینترنت نرم افزار AdobeRoboHelp رو دانلود کنی که هر چی میخوای داره! الان آخرین ورژنش 8 است.

اگه نتونستی پیدا کنی، امر کنی واست آپلود میکنم و آدرسشو میذارم واستون!
راضی شدی؟
حالا دیگه اخم نکن:قلب:

mohammad meta
یک شنبه 13 تیر 1389, 11:53 صبح
دوست عزیز من از یک component که از اینجا دانلود شده استفاده کردم
http://www.componentone.com/SuperProducts/BookSilverlight/

حالا این component هر page را به صورت یک object میگیره و نمایش میده .
من اگه هر صفحه word را به یک html file تبدیل کنم چهجوری میتونم html را یا به صورت xaml یا معمولی
به این page add کنم ؟

taghvajou
یک شنبه 13 تیر 1389, 11:54 صبح
پس لطفا صبر کن بذار کمپوننت رو دانلود کنم و مطالعه اش کنم.

mohammad meta
یک شنبه 13 تیر 1389, 12:00 عصر
دست گلت درد نکنه .اگه بشه pdf به هر page اضافه کنیم که عالیه ؟

hezare
یک شنبه 27 تیر 1389, 18:04 عصر
void data_Select_Top_albumCompleted(object sender, Select_Top_albumCompletedEventArgs e)
{

System.Collections.ObjectModel.ObservableCollectio n<string> lst = (System.Collections.ObjectModel.ObservableCollecti on<string>)e.Result;




string imgUri10 = "http://نام سایت/" + list[8];
aks10.Source = new BitmapImage(new Uri(imgUri10, UriKind.RelativeOrAbsolute));

taghvajou
شنبه 09 مرداد 1389, 20:14 عصر
سلام به همه و خدمت جناب هزاره

بخش دوم جوابتون درسته! ممنون. ولی
در مورد کاربرد اون آبزروال کالکشنی که تو پاسختون دادین یه توضیح لطف میکنین؟
علی الظاهر شما یه تابعی ای داشتین به نام ( data_Select_Top_albumَASync()) که در انتهای اجرای کار رویداد اتمامش شده متدا بالایی که مقدار نتیجه متد یعنی همون (e.result) رو تو یه آبزروال کالکشن از رشته ریختین. ولی سوالی که مطرحه این کالکشن رو واسه چی ساختین و کجا استفاده کردین؟ و مهمتر این که چرا یه کالکشن از رشته؟؟؟!!!

البته حدس میزنم شما تو کپی کردن سورس، یه چند خط رو اضافه آوردین!

hezare
یک شنبه 10 مرداد 1389, 17:41 عصر
سلام جناب تقواجو

من یه متد داشتم به اسم Select_Top_album() که البته خروجی متد از نوع لیست هست .. حتما میدونید که WCF فقط لیست Generic رو میفهمه و برای همین از bservableCollection استفاده کردم ..
نتیجه این آلبوم رو می تونید در آدرس زیر ببینید :
http://english.iribnews.ir/PhotoAlbum.aspx

موفق باشید

taghvajou
یک شنبه 10 مرداد 1389, 17:46 عصر
بله متوجه هستم. ولی سوال این بود که در واقع تابعی که لیست آلبوم های برتر رو فراخوانی میکرده؟ و ارتباط این تابع به نمایش عکس؟

ضمنا کار قشنگی بود! دستتون درد نکنه!

hezare
یک شنبه 10 مرداد 1389, 17:52 عصر
متوجه نمی شم ؟!

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

taghvajou
یک شنبه 10 مرداد 1389, 17:53 عصر
ممنون
منم خواستم همین کار را انجام دهم .یعنی در زمان runtime دونه دونه عکس بهش بدم ولی متاسفانه هر کاری می کنم مسیر فایل ایراد میگیره .
نمی دونم در silver light مسیر نسبی چه جوری میدن
به دلیل اینکه من تازه با silverlight آشنا شدم اصلا نمی دونم عکس را چجوری به صورت dynamic به پروپه addکنم اگه شما راهنماییم کنید خیلی خیلی ممنون میشم.

آقا محمد! نحوه به کار گرفتن عکس رو تو تاپیک آموزش گذاشتم ها! اگه خواستی یه سر بزن!

http://barnamenevis.org/forum/showthread.php?p=1053322#post1053322

hezare
یک شنبه 10 مرداد 1389, 18:00 عصر
متوجه نمی شم ؟!

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

taghvajou
یک شنبه 10 مرداد 1389, 18:04 عصر
گرفتم! یعنی شما به جای اینکه اصل عکس رو تو پایگاه داده نگه دارین، پث اونا رو دارین و به خورد یو آر آی بیت مپ دادین!
خوب اینطوری سرعت پایین میاد؟ نمیاد؟
چون عکس به صورت بایت تو پایگاه داده ذخیره میشه، و بعد این آرایه بایت تو کلاینت به عکس تبدیل بشه سریعتره تا اینکه ریکوست به آی آی اس فرستاده بشه، و اون هم با پایپ این کار رو بکنه!

ممنون میشم بیشتر توضیح بدین.

hezare
یک شنبه 10 مرداد 1389, 18:24 عصر
خوب .. خیلی ممنون که به این موضوع توجه نشون دادین ..:تشویق:

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

taghvajou
سه شنبه 12 مرداد 1389, 12:19 عصر
در مورد برنامه شما، بک آپ و حجم کاملا درست میگی که من فکرش رو نکرده بودم.
یه نکته ای رو هم من از تجربه ام بگم:
اما در مورد سیستم های اتوماسیون، قضیه متفاوته! تصاویر جزو اسناد محسوب میشن و نباید به صورت طبیعی جایی ذخیره بشن که بشه دید یا دست کاری کرد.

حالا یه سوال دیگه:

اگه بخوای تو یه ریکست مثلا تو یکی از اون متدهای آسینک یه لیست با تعداد رکورد خیلی بالا رو دریافت کنی، wcf تایم اوت میده! شما این مشکل رو چطور حل کردی؟ (البته اگه باهاش مواجه شدین).
کاری که من کردم:
در مجموع یه درخواست بزرگ رو در قالب پکیج های کوچیکتر متوالی (مثلا 500 تایی) کشیدم:
اول یه کانت از موجودی پایگاه داده اش گرفتم مثلا تعداد کاربران حدود 3000 تا.
بعد یه لیست طرف کلاینت درست کردم که هر پکیج رو بهش اد میکنم.
بعد یه متغیر محلی طرف کلاینت که شماره پکیج رو توش نگه میداره.
بعد تابعی که شماره پکیج رو میده و پکیج رو بگیره>
تو قسمت سرور هم
اول تابعی که کل رو بکشه
بعد تابعی که شماره پکیج رو بگیره و 500 nام رو واکشی کنه و برگردونه

تا حالا با این روش کار میکردم ولی به خون جگر!:ناراحت:

خواستم ببینم که شما تنظیمی ، روشی ساده تری؟؟

hezare
چهارشنبه 20 مرداد 1389, 14:38 عصر
سلام

درباره اینکه تو اتوماسیون شما اسناد رو در دیتابیس قرار بدید به نظرم کار درستی نیست .

شما براحتی می تونید روی فایلها هر نوع پرمیژنی رو که می خواهید تعریف کنید و روشهای امنی برای نگهداری تصاویر وجود داره .. البته پرمیژن خطر هک شدن و دسترسی ادمین رو داره .. راه حل بعدی هم اینه که فایلهات رو با یکی از روشهای موجود مثل RSA1 یا SHA1
Incript کنی و بر اساس پسوردهای داخل Table اجازه دسترسی بدی ..به هر حا نگه داشتن تصاویر در دیتابیس از اساس و به هر نحوی و برای رفع هر مشکلی کاملا اشتباهه
و کاربر شما به مرور زمان مجبور میشه از لحاظ سخت افزار امکانات بیشتری رو برای اجرا یک اتوماسیون تلف کنه ضمن اینکه به مرور کارایی اتوماسیون شما کاهش پیدا میکنه .. البته متاسفانه در اتوماسیونهای دیگری هم این موضوع رو دیدم و البته مشکل بروز رسانی سخت افزار دیتابیس ..

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

اما پیشنهاد می کنم از نمایش حجم داده بالا در کلاینت صرفنظر کنید و شبیه به گرید بنا به درخواست کلاینت صفحه رو برای کلاینت بیارید..

امیدوارم متوجه منظورم شده باشین .. در ضمن این سوالهاتون خوب بود و موجب فکر کردن من هم شد .. ممنون

-

taghvajou
چهارشنبه 20 مرداد 1389, 14:56 عصر
سلام به همه
تو پروژه خودم، من عکس فرد رو تو دیتا بیس رو در فرمت بایت تو دیتابیس نگه میدارم!

وب سرویس های معمولی که دیتای حجیم و پرتعداد رو جابه جا میکنند! این تو دبلیو سی اف لحاظ نشده!

در مورد امتناع از نمایش حجم بالا داده هم، خواسته ی خود مشتریه و من هم مطیع!


در هر صورت از همفکریتون متشکرم