Python-web2py-使用类在画布上绘制矩形(或图像)
我正在为一个学校项目制作一个程序,该项目要求我将拼贴画中的图像放在画布上。我用方法创建了一个类,该类创建了放置图像(或用于测试的矩形)所需的所有数字(坐标、大小等)。然而,我不确定如何使它,以便我可以调用这些方法,使HTML绘制在正确的地方矩形 index.html中的内容:Python-web2py-使用类在画布上绘制矩形(或图像),python,html,python-2.7,html5-canvas,web2py,Python,Html,Python 2.7,Html5 Canvas,Web2py,我正在为一个学校项目制作一个程序,该项目要求我将拼贴画中的图像放在画布上。我用方法创建了一个类,该类创建了放置图像(或用于测试的矩形)所需的所有数字(坐标、大小等)。然而,我不确定如何使它,以便我可以调用这些方法,使HTML绘制在正确的地方矩形 index.html中的内容: <script> var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d"); {{makeMosaic.
<script>
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
{{makeMosaic.drawRectangle(0)}}
ctx.fillStyle = "#FF0000";
ctx.fillRect({{=session.space[0][0]}}, {{=session.space[0][1]}}, {{=session.space[1][0]-session.space[0][0]}}, {{=session.space[1][1]-session.space[0][1]}});
</script>
因此,我尝试在index.html中调用drawRectangle,以便可以绘制第二个不同的矩形。您不能从html调用Python代码。Python在服务器上运行,而不是在浏览器中运行。你要么使用JavaScript,要么将服务器上的拼贴作为图像,然后将此图像作为响应发送到浏览器。你不能从HTML调用Python代码。Python在服务器上运行,而不是在浏览器中运行。您必须使用JavaScript,或者将服务器上的拼贴作为图像,然后将此图像作为响应发送到浏览器。
try:
from PIL import Image
except:
import Image
import os
@auth.requires_login()
def index():
... irrelevant code ...
makeMosaic = Mosaic(3508, 4960, 2)
makeMosaic.divideEmpty(0, 1000, 1200)
return dict(Ufname = Ufname, Utype = Utype, makeMosaic=makeMosaic)
... irrelevant code...
class Mosaic:
def __init__(self, c_x_size, c_y_size, c_id):
self.c_x_size = c_x_size #Canvas x size
self.c_y_size = c_y_size #Canvas y size
self.image_sizes = [] #A list of the sizes of each image. Formatted like: [[x,y],[x,y],[x,y]...]
self.c_id = c_id
images = db().select(db.image.ALL, orderby=db.image.id)
for image in images:
if image.canvas_id == self.c_id:
img = Image.open(os.path.join(request.folder, "uploads", image.file), "r")
self.image_sizes.append([img.size[0], img.size[1]])
self.emptyspace = [[[0,0],[self.c_x_size, self.c_y_size]]] #The list for the empty spaces. Formatted like: [[[top left x & y],[bottom right x & y]]]
def divideEmpty(self, imgInd, x_place, y_place):
... irrelevant code...
def addImage(self, imgInd, x_place, y_place):
... irrelevant code...
def drawRectangle(self, spaceInd):
session.space = self.emptyspace[spaceInd]