# Native Code > برنامه نویسی در 6 VB > برنامه نویسی مرتبط با بازی و گرافیک در VB6 >  Zoom کردن تصویر

## اوبالیت به بو

سیلام:

بچه ها من تویه برنامم یه قسمتی باید بزارم که کاربر بتونه رویه عکس ZoomIn و ZoomOut بکنه.
تویه سایت گشتم و برنامه Zoom پیدا کردم ولی اونچیزی که می خواستم نبود. وقتی سورس برنامه هایی رو که جستجو کرده بودم رو بررسی کردم متوجه شدم که اکثر برنامه ها یه کلکی زده بودن و اونم این بود که مثلاً وقتی شما رویه عکس ZoomIn می کردین برنامه می گرفت Heightو Width عکس رو تقسیم بر 4 می کرد یعنی اندازه ImageBox رو تغییر می داد و درواقع هیچ Zoom انجام نمی شد. :تشویق: 
کسی از دوستان می دونه که چی جوری میشه یک Zoom واقعی داشت؟ درست مثل 
Windows Picture که عمل Zoom رو انجام می ده.
از لطفتون ممنونم. :قلب:

----------


## Evil 69

وای پسر خوب اینم دیگه یک شکل زوم هست اصلا زوم کردن یک منطق داره اونم اینه که وقتی ما زوم میکنیم پیکسل های عکس ما بیشتر میشه شاید بگی اگر این طور بود که باید کیفیت تصویر بیشتر میشد اما اینطور نیست چون که ما از هر پیکسل در هر بار زوم کردن 2 یا 4 کپی میگیریم این طوری عکس بزرگ تر میشه اما این یک مشکل بزگ داره اون هم اینکه عکس خیلی زود کیفیتش رو از دست میده یک راه خیلی خوب برای زوم همونه که توی یک image که استریچ شده عکس رو بذاری و بعد اندازه اون رو بزرگ و کوچیک کنی

----------


## اوبالیت به بو

خوب آخه وقتی اینجوری میشه option های سمت راست برنامم قاطی عکس میشه و برنامم رو خراب می کنه.

----------


## اوبالیت به بو

این تصویر برنامم هستش. یه ملاحظه کنید متوجه منظورم میشید.

تصویر First زمان قبل از Zoom هستش.
تصویر Last زمان بعد از Zoom هستش.
بدلیل حجم بالای عکس ها مجبور شدم تو یه فایل rar بزارم. هرکاری کردم تا حجمشون کمتر از 97 kb بشه نشد. به بزرگی خودتون ببخشید.

----------


## vbhamed

سلام
picturebox اصلی رو که در تصویر هست توی یک picturebox دیگه بزار مشکلت حل میشه

----------


## MMR_1344

دوست عزیز

آقای Mbt925 قبلاً این برنامه رو برای من قرار داده بودند ببینید بدرد شما میخوره من مشکلم رو جور دیگه حل کردم

----------


## اوبالیت به بو

یعنی من ImageBox رو داخل یه Frame یا PictureBox بزارم مشکلم حل میشه؟؟؟؟ دیگه اندازش بزرگ نمیشه؟؟ قشنگ زوم می کنه؟
جناب MMR_1344 این برنامه شما در اصل چی کار می کنه؟

----------


## saied_hacker

اینم یه برنامه زوم در حد نو ولی ضعیف....

----------


## vbhamed

سلام
اگر imagebox رو داخل یک picturebox بزاری، موقعی که بزرگش می کنی بیرون نمی زنه که دکمه های برنامت بیاد رو عکس

----------


## MMR_1344

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

----------


## اوبالیت به بو

همون طور که گفتم برنامه هایی که من دانلود کردم همشون میومدن Height و Width یه تصویر رو کم می کردن. مثلاً تقسیم بر 8 می کردن. با این کار نه تنها هیچ عمل Zoom صورت نمی گرفت بلکه شما اگر می خواستید سمت راست یه تصویر رو Zoom کنید نمی تونستید چون تصاویر از نقطه 0.0 شروع میشن و وقتی Height و Width تصویر کم بشن، تصویر به سمت نقطه 0.0 میل می کنه یعنی سمت چپ بالا (گوشه بالا). :تشویق: 
*حالا ما باید:*
کاری کنیم که در Zoom در نقطه Y و X ماوس انجام بشه. اما مشکلی که وجود داره:
ما الگوریتم Zoom رو بلد نیستیم. چی جوری میشه پیکسل ها رو شکافت و وارد تصویر شد؟؟؟

----------


## اوبالیت به بو

بچه ها یه کشف بزرگ کدم که یه دنیا واسم ارزش داره.
تمام برنامه های Zoom وقتی عمل Zoom رو که می کنن همون طور که گفتم Height و Width رو کم می کنن و برای اینکه کاربر بخواد نقطه دلخواهش رو ببینه براش یه VScroll و یه  HScroll می زارن و کاربر می تونه سمت راست و پایین و .... عکس رو ببینه.
کسی از دوستان می تونه تویه برنامه زیر یه سری تغییراتی ایجاد کنه تا بشه با HScroll و VScroll قسمت های دیگر عکس رو مشاهده کرد؟ :لبخند: 
از جناب mbt925 کمک می خوام و بقیه دوستان. حتماً کمکم کنید.

----------


## majjjj

> بچه ها یه کشف بزرگ کدم که یه دنیا واسم ارزش داره.
> تمام برنامه های Zoom وقتی عمل Zoom رو که می کنن همون طور که گفتم Height و Width رو کم می کنن و برای اینکه کاربر بخواد نقطه دلخواهش رو ببینه براش یه VScroll و یه HScroll می زارن و کاربر می تونه سمت راست و پایین و .... عکس رو ببینه.
> کسی از دوستان می تونه تویه برنامه زیر یه سری تغییراتی ایجاد کنه تا بشه با HScroll و VScroll قسمت های دیگر عکس رو مشاهده کرد؟
> از جناب mbt925 کمک می خوام و بقیه دوستان. حتماً کمکم کنید.


سلام
فکر کنم یک نمونه این جوری جناب جهانشاهی گذاشته بودن البته نمیدونم اینجا بود یا رو سایت پی سی ورد خودتون سرچ کنین

----------


## Mbt925

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

----------


## اوبالیت به بو

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


ببینید من می خوام ادامه عکس رو ببینم. مثلاً اسکرول کنم سمت راست یا چپ بالا پایین.

----------


## اوبالیت به بو

> اینم یه برنامه زوم در حد نو ولی ضعیف....


این برنامه شما وقتی ZoomIn می کنیم هیچ کدوم از Scroll های برنامه کار نمی کنه. میشه درستش کنید.

----------


## vbhamed

سلام
اینم برنامه اصلاح شده

----------


## ehsanocx

اين برنامه كه اصلاح نشده ؟  scroll ها كار نمي كنن كه ؟

----------


## look20

تشکر از فایلی که دوستمون vbhamed گذاشتند فقط یه مشکل ببخشید چطور بعد از اینکه zoom in و zoom out میکنه با یک دکمه به حالت defualt یعنی حالت اول عکس برگردیم ممنون میشم کدشو راهنمایی کنید

----------


## vahid3vahid

دوست عزیز این کار به راحتی آب خوردن هست و تعجب میکنم که هیچ کس نتونسته جواب درست حسابی به شما بده!!!! با استفاده از توابع API این کار انجام میشه. تابع BitBlt که احتمالا کار با اونو باید بدونید. اگه نتونستین با این تابع کار کنید میتونم کمکتون کنم

----------


## ebrahimashori

با استفاده از Api BitBlt علاوه بر Zoom کردن بر روی تصویر قابلیت هایی مثل کپی بر داری از تصویر ، ترکیب متن با تصویر ، ترکیب یک تصویر با تصویر دوم در حالت های گوناگون براحتی امکان پذیر است. این pdf آموزش نسبتا کاملی در مورد کار با BitBlt  می دهد.

----------

