我正在尝试使用PIL打开图像,然后在其上画一条线,但是它不起作用。我正在尝试显示一个水平,该行是用户水平的水平。
我尝试使用@model Warehouse.Product.ProductTransactionsViewModel
@using Warehouse.Helpers;
@{
ViewBag.Title = "Product Transactions";
ViewBag.ProgramID = Model.ProgramID;
ViewBag.ProductName = Model.ProductName;
ViewBag.ProductID = Model.ProductID;
Layout = "~/Views/Shared/_PRPopupsLayout.cshtml";
var PRID = (int?)ViewBag.ProductRequestID;
}
<div class="DisplayMessage">
</div>
<div class="popupContentContainer">
@Html.Partial("_ProductTransactions")
</div>
<div style="text-align:center">
@if(Model.ProductStatus == "Active")
{
<input type="button" value="Generate Product Document" id="ProductInquiry" name="ProductInquiry" class="grey button" />
}
<input type="button" value="Exit" id="exit" name="exit" class="grey button" />
</div>
创建一个新图像,并已经有一个可用的底座,并使用Image.new
打开它,并且我还尝试了将坐标直接放入函数中,将两个元组作为变量并将这些变量调用到函数中(如下所示)。基本图像是透明图像。
Image.open
我打开图像,它是 length = 300 # Used as a placeholder integer, as this would change depending on user's level
base = Image.open('./level_up/base.png')
draw = ImageDraw.Draw(base)
pos1 = (280, 324)
pos2 = (280, length + 324)
draw.line((pos1, pos2), fill=(255, 102, 168), width=20)
base.save('./level_up/base2.png')
的空白透明图像,没有任何内容。没有行或其他任何内容。
答案 0 :(得分:0)
在处理包含透明度的图像(PIL中的模式为“ RGBA”)时,必须显式地将不透明度作为颜色的第4个分量传递。 只需添加“ 255”即可,这意味着在您拨打电话时,填充颜色的透明度为100%,
draw.line((pos1, pos2), fill=(255, 102, 168, 255), width=20)