मेरे पास एक विनफॉर्म एप्लिकेशन है जो उपयोगकर्ता क्षेत्र आधारित स्क्रीनशॉट लेने के लिए उपयोग करता है। मैं एक छोटा सा पूर्वावलोकन फलक चाहता हूं, लेकिन मुझे यकीन नहीं है कि यह कैसे करें। अब तक मैंने माउस चाल पर बिटमैप को दोबारा बनाने की कोशिश की है और इसका एकमात्र रास्ता उपयोग करने योग्य है। तो मैंने सोचा कि अगर मैंने प्री-डिफ़ाइंड छवि (पूरी स्क्रीन का स्क्रीनशॉट) इस्तेमाल किया है और इसे माउस स्थान के आधार पर पिक्चरबॉक्स के अंदर ले जाया है ताकि आप स्क्रीन को देखने में ज़ूम कर सकें (सटीक पिक्सेल का चयन करने के लिए जो आप लेना चाहते हैं आसान के साथ स्क्रीनशॉट)। मुझे यकीन नहीं है कि मैं इसे कैसे कार्यान्वित कर सकता हूं, मैं ड्राइंग के लिए भी बहुत नया हूं इसलिए मैं आपको दिखाऊंगा कि अब मेरे पास क्या है।स्क्रीनशॉट "पूर्वावलोकन" विंडो कैसे आकर्षित करें?
private void falseDesktop_MouseMove(object sender, MouseEventArgs e)
{
zoomBox.Image = showZoomBox(e.Location);
zoomBox.Invalidate();
}
private Image showZoomBox(Point curLocation)
{
int x = 0;
int y = 0;
if (curLocation.X - 12 <= 0)
{
x = curLocation.X - 12;
}
else
{
x = curLocation.X;
}
if (curLocation.Y - 11 <= 0)
{
y = curLocation.Y - 11;
}
else
{
y = curLocation.Y;
}
Point start = new Point(curLocation.X - 12, curLocation.Y - 11);
Size size = new Size(24, 22);
Rectangle rect = new Rectangle(start, size);
Image selection = cropImage(falseDesktop.Image, rect);
return selection;
}
private static Image cropImage(Image img, Rectangle cropArea)
{
if (cropArea.Width != 0 && cropArea.Height != 0)
{
Bitmap bmpImage = new Bitmap(img);
Bitmap bmpCrop = bmpImage.Clone(cropArea, bmpImage.PixelFormat);
bmpImage.Dispose();
return (Image)(bmpCrop);
}
return null;
}
संपादित करें:
यहाँ एक नकली अप की तरह है अनुरोध किया:
इस छवि का काला भाग एक पैनल, बेशक पाठ एक लेबल और क्षेत्र है जहां आप छवि देख जा रहा है (स्टैक ओवरफ़्लो) ज़ूमबॉक्स के शीर्ष पर स्थित लाइनबॉक्स (ज़ूमबॉक्स कहा जाता है) होगा एक गाइड होगी और जहां 2 लाइनों का अंतर होता है तो माउस की स्थिति होगी। आशा है कि यह मेरी समस्या को समझने में आपकी सहायता करने के लिए एक बेहतर सहायता है।
एक और बात जो कि मेरी समस्या समझाने मदद कर सकता है प्रपत्र वास्तव में एक "झूठे डेस्कटॉप" के साथ पूरे स्क्रीन भरता है। यह एक पिक्चरबॉक्स है जो "प्रिंटरस्क्रीन" दबाए जाने पर डेस्कटॉप के स्क्रीनशॉट के साथ पूरी स्क्रीन को कवर करता है। इसलिए मैं मूल रूप से माउस के स्थान पर ज़ूम किया जाना चाहता हूं, यह छोटा "पूर्वावलोकन फलक" चाहता हूं।
आपकी समस्या दिलचस्प लगता है, लेकिन यह कोड स्निपेट से अपने इरादे समझ पाना कठिन है। आगे बढ़ने का सबसे अच्छा तरीका एमएस पेंट के साथ नकली-अप बनाना है ताकि आप यह दिखा सकें कि आप क्या कर रहे हैं, आईएमओ। (आपको मॉक-अप तस्वीर को अपलोड और लिंक करने की आवश्यकता होगी ...) –
@ पॉल: मैंने आपके लिए अधिक जानकारी और एक नकली छवि जोड़ा है। – Alex
मैंने एक पूरा कोड नमूना जोड़ा जो आपकी मदद कर सकता है। यह कठिन कोडित है और थोड़ा हैक-आश है लेकिन आपके लिए उपयोगी हो सकता है। –