我知道这会有点奇怪,拜托,请问我这个愚蠢的问题,还有一个糟糕的编码风格,因为,我知道一个人不能在构造函数中声明一切并使用它们。
我的目标是上传静态图片内容。我正在使用库opencv
和'cherrypy'
虽然opencv部分将用于显示图像,使用cherrypy的原因是在浏览器中上传图像,并使用waitKey(0)
,我想刷新这些图像。
问题是,这不起作用,我知道,设计很差。
我发布这个是因为,我现在已经没有解决方案,并希望得到一些帮助,即使是一个小小的提示也没关系,我会自己更正代码。
这是代码:
import sys
import cherrypy
import cv2
import base64
class Img(object):
def __init__(self):
self.plat = sys.platform
if self.plat == 'win32':
self.file_dir = "C:\\Users\\user\\Desktop\\fruit\\"
elif self.plat == 'linux2':
self.file_dir = "/host/Users/user/Desktop/fruit/"
print self.plat
print self.file_dir
self.img = cv2.imread(self.file_dir + "orange.jpg")
@cherrypy.expose
def index(self):
self.k = cv2.waitKey(0)
if self.k == 'w':
# self.img = cv2.imread(self.file_dir + "orange.jpg")
_, data = cv2.imencode('.jpeg', self.img)
jpeg_base64 = base64.b64encode(data.tostring())
return """
<html>
<head>
<title>Fruit Nutritional Information</title>
</head>
<html>
<body>
<img src='data:image/jpeg;base64,%s' height = 640 width = 1200 />
</body>
</html
""" % (jpeg_base64)
elif self.k == ord('q'):
sys.exit()
if __name__ == '__main__':
cherrypy.config.update({'server.socket_host': '127.0.0.1', 'server.socket_port':8080 })
cherrypy.quickstart(Img())
您可以提供接受键盘输入的JavaScript文件:serving static content with CherryPy或者只是将JavaScript代码放在HTML代码中的脚本标记内。