PDA

View Full Version : سوال: فشرده سازي تصاوير



hassan_h
شنبه 15 تیر 1387, 18:34 عصر
کسی بلده با کد سی شارپ حجم عکس رو کم کنه؟

gdevnb
یک شنبه 16 تیر 1387, 05:59 صبح
سلام
لطفاً بیشتر توضیح بدید.(میخوای چکار کنی؟)
یه راهش اینه که فرمت عکسهای ورودی رو تبدیل به JPG کنی.

مهدی رحیم زاده
یک شنبه 16 تیر 1387, 06:46 صبح
من فکر می کنم که بشه این عکس رو به صورت متنی در آورد و بعد اونو فشرده کرد! اینجوری حجم اون خیلی کم میشه . قبلا یکی از دوستام از این روش برای ارسال عکس از اینترنتی که سرعتش واقعا پایین بود استفاده می کرد. اما اون توی طرف مقابل هم یه برنامه قرار داده بود تا این فایل رو به عکس تبدیل کنه و مشکل دقیقا همینجاست که چکار کنیم که بعد از این تبدیل و فشرده سازی عکی رو هرجا که باز کردیم بلافاصله از حالت متنی و فشرده خارج بشه و به صورت عکس نمایش داده بشه ؟؟؟؟؟؟؟؟

'برنامه نویس'
یک شنبه 16 تیر 1387, 08:55 صبح
من فکر می کنم که بشه این عکس رو به صورت متنی در آورد و بعد اونو فشرده کرد! اینجوری حجم اون خیلی کم میشه . قبلا یکی از دوستام از این روش برای ارسال عکس از اینترنتی که سرعتش واقعا پایین بود استفاده می کرد. اما اون توی طرف مقابل هم یه برنامه قرار داده بود تا این فایل رو به عکس تبدیل کنه و مشکل دقیقا همینجاست که چکار کنیم که بعد از این تبدیل و فشرده سازی عکی رو هرجا که باز کردیم بلافاصله از حالت متنی و فشرده خارج بشه و به صورت عکس نمایش داده بشه ؟؟؟؟؟؟؟؟

دوست عزیز میشه بیشتر درباره این روش توضیح بدی و اگر اون برنامه رو داری برامون بزاری؟

مهدی رحیم زاده
یک شنبه 16 تیر 1387, 10:55 صبح
البته دوست گلم
توی این روش با یه برنامه قبل از ارسال عکس رو به شکل یک فایل متنی تبدیل می کردن . بعد این فایل متنی رو با سرعت کم راحت تر از اون عکس ارسال می کردن . اون طرف هم یه نمونه از این برنامه بود که عمل بازیابی رو انجام میداد . یعنی اون فایل رو به عکس تبدیل می کرد . البته این برنامه مشکلش همینجا بود که عمل بازیابی نیاز به یه نرمافزار داره ....
برنامشو هم اگه دم دست بود براتون میزارمش ، اما با سی شارپ چیز سختی نیست .

jeus
یک شنبه 16 تیر 1387, 12:28 عصر
دوست من شما منظورتونو درست و واضح بیان نکرده اید
عکسها با پسوندهای مختلف وجود دارند و از لحاظ حجم تصویر و کیفیت هم با هم متفاوت هستند اما متداولترین آنها عکیهای JPG و GIF می باشند که در اینترنت مورد استفاده قرار میگیرند و عکسهای PNG را هم به دو مورد قبلی اضافه کن
شما برای کم کردن حجم عکس میتوانی از لحاظ تئوری کارهای زیر را انجام بدی
1: تبدیل پسوند عکس به فرض مثال از TIF به JPG
2 : کم کردن size عکس از نظر hieght,width که مثل آواتورهای توی همین سایت میمونه و عکس حتی اگر به اندازه پوستر هم باشد کوچیکش میکنه و به سایز مشخص درش می آره
3: کم کردن رزولیشن عکس که نسبت نقطه بر اینچ است و با سایز عکس(2) رابطه مستقیم دارد .
موضوع دیگری که باید در نظر بگیری اینه که تبدیل عکس به متن هیچ کمکی به کم کردن سایز عکس نمیکند و اگر یک فایل عکس را در ویندوز از jpg به txt تغییر بدی تنها فرقش اینه که با notepad باز میشه و حجمش هیچ تغییری نمیکند

mehdi.mousavi
یک شنبه 16 تیر 1387, 12:45 عصر
البته دوست گلم
توی این روش با یه برنامه قبل از ارسال عکس رو به شکل یک فایل متنی تبدیل می کردن . بعد این فایل متنی رو با سرعت کم راحت تر از اون عکس ارسال می کردن . اون طرف هم یه نمونه از این برنامه بود که عمل بازیابی رو انجام میداد . یعنی اون فایل رو به عکس تبدیل می کرد . البته این برنامه مشکلش همینجا بود که عمل بازیابی نیاز به یه نرمافزار داره ....
برنامشو هم اگه دم دست بود براتون میزارمش ، اما با سی شارپ چیز سختی نیست .


سلام.
چطور همچین چیزی امکان داره؟ ذخیره عدد 255 (بعنوان مثال) بصورت text نیاز به ذخیره 3 بایت داره، اما همین 255 رو میشه بصورت باینری در یک بایت ذخیره کرد. پس حجم کم نمیشه!

مساله دوم اینکه ارسال یه فایل متنی چه تفاوتی با ارسال یه فایل باینری داره؟ منظورتون از "راحت تر" چیه؟ هر Packet اطلاعاتی یا ارسال میشه، یا نمیشه، دیگه راحتی یا سختی در ارسال اطلاعات مطرح نیست!

مساله سوم اینکه باید ببینیم پروتکل ارسال اطلاعاتتون چی بوده. الان دیگه مثل 15 سال پیش نیست که واسه ارسال یه فایل Binary بصورت Attachment از طریق email، نیاز به تبدیل اون فایل به BASE-64 توسط یه برنامه واسط *بصورت دستی* باشه. منظورم اینه که امروزه خیلی از فایلهای Binary که ارسال میشن، خودشون توسط Mail Server ها به BASE64 تبدیل و در مقصد مجددا (توسط Client) به Binary بر میگردن!

مساله چهارم هم اینکه بغیر از پردازش تصویر و ادغام رنگها و ... الگوریتمهای Packing امروزی (مثل LZW) تقریبا نمیتونن بیش از یکی دو درصد فایلهای JPG رو فشرده کنن!

مهدی رحیم زاده
یک شنبه 16 تیر 1387, 15:59 عصر
سلام.
چطور همچین چیزی امکان داره؟ ذخیره عدد 255 (بعنوان مثال) بصورت text نیاز به ذخیره 3 بایت داره، اما همین 255 رو میشه بصورت باینری در یک بایت ذخیره کرد. پس حجم کم نمیشه!

مساله دوم اینکه ارسال یه فایل متنی چه تفاوتی با ارسال یه فایل باینری داره؟ منظورتون از "راحت تر" چیه؟ هر Packet اطلاعاتی یا ارسال میشه، یا نمیشه، دیگه راحتی یا سختی در ارسال اطلاعات مطرح نیست!

مساله سوم اینکه باید ببینیم پروتکل ارسال اطلاعاتتون چی بوده. الان دیگه مثل 15 سال پیش نیست که واسه ارسال یه فایل Binary بصورت Attachment از طریق email، نیاز به تبدیل اون فایل به BASE-64 توسط یه برنامه واسط *بصورت دستی* باشه. منظورم اینه که امروزه خیلی از فایلهای Binary که ارسال میشن، خودشون توسط Mail Server ها به BASE64 تبدیل و در مقصد مجددا (توسط Client) به Binary بر میگردن!

مساله چهارم هم اینکه بغیر از پردازش تصویر و ادغام رنگها و ... الگوریتمهای Packing امروزی (مثل LZW) تقریبا نمیتونن بیش از یکی دو درصد فایلهای JPG رو فشرده کنن!
اول سلام
تموم گفته های شما درسته و شما کاملا متین می فرمایید . اما اون موقع ارسال یک عکس با سرعت 12k فکر کنم خیلی سخت بود . البته این حداکثر سرعت بود بنا به دلایل فیزیکی و ...
اینم که من گفتم این بود که بعد از تبدیل اونو فشرده می کرد و بعد ارسال می کرد . حجم فایل کمتر از حجم فعلی اون میشد .با این که مناسب نیست گفتم شاید بتونه ایده بده . همین

hassan_h
یک شنبه 16 تیر 1387, 23:36 عصر
سلام به دوستان
خواهشن یک مثال از کم کردن حجم عکس با تغییر اندازه عکس بزارین من این برنامه رو برای ارسال اطلاعات پرسنلی از طریق وب سرور می خواهم که در اون اگه حجم عکس بالا باشه با توجه به سرعت کم اینترنت مشکل ایجاد میکنه

hassan_h
دوشنبه 17 تیر 1387, 20:03 عصر
من همچنان منتظر کمک دوستان هستم

hassan_h
چهارشنبه 19 تیر 1387, 01:15 صبح
یک مثال از سی شارپ می خواستم که در اون حجم عکس رو تا اندازه معین کم کنه و دیگه نیاز نباشه به کار بر بگیم که عکس ارسالی شما باید در این ابعاد و این حجم باشه