簡體   English   中英

使用 Python 和 PHP 將圖像發布到剪貼板的問題

[英]Problem posting image to clipboard using Python and PHP

大家好(我的第一篇文章)。 請溫柔點! 我正在運行 Windows 10 版本 10.0.18363 Build 18363。Python 3.8.5 Apache 2.4.41

我找到了一個如何將圖像復制到 Windows 剪貼板的示例。 如果我在 cmd.exe 級別運行該程序,它就會工作,並且我可以從剪貼板粘貼復制的圖像。 如果我使用 exec(program to run) 從 PHP 腳本(這是一個要求)中執行相同的程序,它運行時不會出現任何錯誤。 但是圖像不在剪貼板中。 我嘗試創建一個 .bat 文件,然后使用 PHP exec(.bat 文件),但沒有將任何內容復制到剪貼板。 在 cmd.exe 級別運行時,.bat 文件再次成功運行。 我已經在 cmd.exe 級別運行 whoami 並且正確的用戶(即我自己作為管理員)顯示 noellaptop\\rorke 除了使用 .bat 文件,我還嘗試了 exec(使用 python 的路徑和要運行的 python 腳本) . 任何建議或幫助將不勝感激,因為我不是經驗豐富的 Python 程序員。

下面的代碼是Python 腳本

#!c:/users/rorke/appdata/local/programs/python/python38/python.exe
 
from io import BytesIO
import win32clipboard
from PIL import Image
import cgi, cgitb 
 
print ("Content-type:text/html\r\n\r\n")
 
# Create instance of FieldStorage 
#form = cgi.FieldStorage() 
#filepath = form.getvalue('image_url')
filepath = "C:/wamp64/www/PhotoApp2.0/favicon.ico"
#print(filepath)
 
def send_to_clipboard(clip_type, data):
    win32clipboard.OpenClipboard()
    win32clipboard.EmptyClipboard()
    win32clipboard.SetClipboardData(clip_type, data)
    win32clipboard.CloseClipboard()
    print("Done!")
 
image = Image.open(filepath)
output = BytesIO()
image.convert("RGB").save(output, "BMP")
data = output.getvalue()[14:]
output.close()
 
send_to_clipboard(win32clipboard.CF_DIB, data)

下面的代碼是PHP 腳本

<?php
    $bat_filename = "aaCopyImage.bat";
    $bat_log_filename = "aaCopyImage_bat.log";
    $bat_file = fopen($bat_filename, "w");
    if($bat_file) {
        fwrite($bat_file, "@echo off"."\n");
        fwrite($bat_file, "echo Starting process >> ".$bat_log_filename."\n");
        fwrite($bat_file, "C:/Users/rorke/AppData/Local/Programs/Python/Python38/python.exe c:/wamp64/www/cgi-bin/hpCopyText.py >> ".$bat_log_filename."\n");
        fwrite($bat_file, "echo End proces >> ".$bat_log_filename."\n");
        fwrite($bat_file, "EXIT"."\n");
        fclose($bat_file);
    }
    exec("aaCopyImage.bat");
?>

將圖像從文件復制到剪貼板的簡單方法。 我不確定這是否能回答 Ops 問題,但因為我才剛剛找到下面描述的方法,所以我想我會分享它。 我目前使用的是最新的 Windows 10。我不知道要進行任何更改以使其正常工作。 我尚未對此進行徹底測試 - 使用風險自負!

  • 右鍵單擊 Windows 資源管理器中的圖像文件(我在 jpg 文件上執行此操作)
  • 這將打開上下文菜單 > 選擇/懸停在“發送到”上
  • 這會彈出一個“子”上下文菜單
  • 我的子上下文菜單頂部附近是“剪貼板(作為內容)”> 選擇它
  • 這將 jpg 文件中的圖像復制到我的剪貼板
  • 我將剪貼板復制到所需的應用程序作為設備獨立位圖 (Word)
  • 它工作得很好。

我希望這對你們中的一些人有幫助。 向前傳遞。 最好的祝願。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM