PDA

View Full Version : چطور ميتونم با مطلب از صفحه كامپيوتر عكس بگيرم؟



nanosi
جمعه 01 شهریور 1392, 02:16 صبح
سلام به همه دوستان
ميخوام همون كاري كه كليد كيبوردprint screen انجام ميده را با مطلب انجام بدم و اون عكس را پردازش كنم.
يعني ميخوام با مطلب از خود صفحه مانيتور عكس بگيرم بعد عكسو پرداش كنم.
حالا سوال: چطور عكس بگيرم و چطور بخونمش؟ :متفکر:

sadeghprog
جمعه 01 شهریور 1392, 06:04 صبح
بفرما این عکس گرفتنش و خوندنشم که کاری نداره



clc;
r=java.awt.Robot;
tool=java.awt.Toolkit.getDefaultToolkit();
rectangle=java.awt.Rectangle(tool.getScreenSize()) ;
image=r.createScreenCapture(rectangle);
fileh=java.io.File('screenshot.jpg');
a=javax.imageio.ImageIO.write(image,'jpg',fileh);
disp('done');

nanosi
شنبه 02 شهریور 1392, 13:30 عصر
خيلي ممنون. اما اين دستورات را در يك ام فايل كپي و اجرا كردم هيچ كاري نكرد. با اين دستورات فقط چند تا متغير دارم كه همشون 1 در 1 هستند و خبري از ماتري عكس نيست.
ميشه يكم بيشتر توضيح بديد. ممنون ميشم

nanosi
شنبه 02 شهریور 1392, 13:34 عصر
تمام متغيرهايي كه از دستورات بالا بدست مياد را با دستور imshow تست كردم ولي عكسي نمايش نداد

sadeghprog
شنبه 02 شهریور 1392, 15:36 عصر
عکس با اسم screenshot.jpg داخل دایرکتوری که برنامه رو داری اجرا میکنی ذخیره میشه نه توی متغیرها. دایرکتوری برنامه را به دسکتاپ تغییر بده تا بتونی راحت تر پیداش کنی

nanosi
یک شنبه 03 شهریور 1392, 01:00 صبح
ممنون از راهنمايياتون. بله عكس در مسير ام فايل ذخيره ميشه:تشویق:

nanosi
یک شنبه 03 شهریور 1392, 01:02 صبح
ميشه يكم راجب به دستورات بالا توضيح بديد؟ جاوا اين وسط چيكار ميكنه؟
آيا اين دستورات مال خود مطلب نيست و از دستورات جاوا در مطلب استفاده شده؟
اين دستورات كدومش عكسو ميگيره كدومش عكسو ذخيره ميكنه؟
وقتي عكس گرفته ميشه، در حافظه كليپ بورد كامپيوتر هستش؟

sadeghprog
یک شنبه 03 شهریور 1392, 17:26 عصر
من خودم چند وقت پیش که لازم بود از صفحه عکس بگیرم این کد در اینترنت پیدا کردم اما کلا همونطور که می دونید مطلب را با جاوا نوشتن پس هنگام نصب مطلب رانتایم جاوا هم نصب میش در جاوا کلاسی هست به اسم robot که با این کلاس میشه تمام کارهایی که میش با صفحه کلید و موس انجام داد پیاده کرد درمورد اون سوالت هم که در مورد موس بود هم احتمالا جواب میده اگر که میخوای واقعا اینکار انجام بدی یه سرچی در مورد java robot class بکن

nanosi
یک شنبه 03 شهریور 1392, 17:46 عصر
بام ممنون از راهنماييتون
ميشه بدون ذخيره كردن در محلي، مستقيما عكس را در متغير قرار داد و ماتريس عكس كه در متغير هست را خوند؟
چون به روش قبلي اول بايد عكس ذخيره بشه بعد بايد خونده بشه كه سرعت كار و پردازشمو پايين مياره

nanosi
یک شنبه 03 شهریور 1392, 17:50 عصر
در مورد اون سوالم دستور زير ماوس را به مكان دلخواه ميبره اما كليك نمدونم چطور ميكنه؟ هنوز گيرشم:
set(0,'PointerLocation',[100,100])

nanosi
دوشنبه 04 شهریور 1392, 16:27 عصر
يه جواب درست و درموني برا سوال خودم يافتم كه گفتنش خالي از لطف نيست :چشمک:
تابع function screencapture را در زير گذاشتم تا دانلود كنيد. اين تابع آپشن هاي زيادي داره . مثلا ميشه باهاش از كل يا قسمتي از يك فيگور، هندل، فريم، gui، دسكتاپ و .... عكس گرفت. ميشه فرمت خروجي را در قالب متغير مطلب يا در قالب فايل جاوا دريافت كرد. ميشه مستقيم عكس را ذخيره كرد و خيلي آپشن هاي ديگه. من يكي ا عمومي ترين كاري كه ممكنه نياز بشه را با دستور زير بهتون معرفي ميكنم. تماميه آپشنهاي اين دستور بصورت كامنت در ابتداي متن ام فايل فانكشن توضيح داده شده.
imageData = screencapture(0, [20,30,250,550]); % capture a desktop region
دستور بالا بخشي از دستكتاپ را عكس ميگيره و درون متغير imageData قرار ميده. با دستور زير ميتونيد اون عكسو ببينيد:
(imshow(imageData
تاكيد ميكنم كه بايد تابع و ام فايل دستورات شما در يك دايركتوري (مسير) باشند.

nanosi
شنبه 20 مرداد 1397, 18:20 عصر
بهتره در انتهای این صفحه یک علامت SOLVED بعد از پنج سال بزاریم که نشون بده مسئله حل شده دیگه :خجالت: