क्लिपबोर्ड में छवि को जेपीईजी में परिवर्तित करना - एक्सेल, छवि, पावरहेल, जेपीईजी, क्लिपबोर्ड

मुझे पता चला कि PowerShell स्क्रिप्ट के साथ Excel शीट में किसी श्रेणी को कॉपी करने के लिए कैसे। मैंने लिखा है कि बाद में एक जेपीईजी में इसे बदलने के लिए एक चर में आउटपुट। मैंने इसे एक्सेल एप्लिकेशन के साथ किया है & Windows.Forms.Clipboard तरीकों (GetImage())।

अब मेरा सवाल है कि मेरे वर्तमान क्लिपबोर्ड को PowerShell स्क्रिप्ट में एक जेपीईजी में कैसे परिवर्तित करें।

क्लिपबोर्ड को सहेजने के तरीके से बदलने के लिए मेरे लिए संभव नहीं था। मेरा आखिरी आदेश इस तरह कुछ देखा:

  1. $clipboard.Save("C:Datapicture.jpeg")
  2. $clipboard.Save(("C:Datapicture.jpeg", "jpeg"))
  3. $clipboard.Save("C:Datapicture.jpeg", "jpeg")

इनमें से कोई भी तीन समाधान काम नहीं करता है। मुझे हमेशा त्रुटि मिलती है कि परिवर्तनीय है शून्य

काम पर मुझे PowerShell संस्करण 5 का उपयोग करने की भी अनुमति नहीं है। इस वजह से मैं cmdlets का उपयोग करने में सक्षम नहीं हूं Get-Clipboard और Set-Clipboard

मुझे पता है कि क्लिप को पेंट में पेस्ट करना संभव है और फिर मैन्युअल रूप से इसे सहेजना संभव है, लेकिन मैं इसे अपने आप नहीं करना चाहता, लेकिन पावरशेल स्क्रिप्ट के साथ।

उत्तर:

उत्तर № 1 के लिए 1

उपयोग [System.Windows.Forms.Clipboard::GetImage() क्लिपबोर्ड से एक छवि लाने के लिए, फिर छवि ऑब्जेक्ट को कॉल करें Save() सही प्रारूप पैरामीटर के साथ विधि:

Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing

$file = "C:pathtooutput.jpg"

if ([Windows.Forms.Clipboard]::ContainsImage()) {
$img = [Windows.Forms.Clipboard]::GetImage()
$img.Save($file, [Drawing.Imaging.ImageFormat]::Jpeg)
} else {
Write-Warning "No image in clipboard."
}

ध्यान दें कि काम करने के लिए क्लिपबोर्ड पहुंच के लिए आपको एसटीए मोड (सिंगल थ्रेड अपार्टमेंट) में चलाना होगा:

ध्यान दें
क्लिपबोर्ड क्लास का उपयोग केवल थ्रेड में एकल थ्रेड अपार्टमेंट (एसटीए) मोड पर सेट किया जा सकता है। इस वर्ग का उपयोग करने के लिए, सुनिश्चित करें कि आपका मुख्य विधि STAThreadAttribute विशेषता के साथ चिह्नित है।


संबंधित सवाल
सबसे लोकप्रिय