文档半岛外围网上直营>>GoJS教程2020>>流程图控件GoJS教程:如何制作影像(二)
流程图控件GoJS教程:如何制作影像(二)
GoJS是一款功能强大,快速且轻量级的流程图控件,可帮助你在JavaScript 和HTML5 Canvas程序中创建流程图,且极大地简化您的JavaScript / Canvas 程序。
同时设置缩放比例和尺寸将创建一个图像,该图像将被专门缩放并裁剪为给定的尺寸,如下图所示。
myDiagram.makeImage({
scale: 1.5,
size: new go.Size(100,100)
});
我们可能需要一个非常大的缩放图像,该图像的大小受到限制,我们可以使用maxSize属性来限制一个或两个尺寸。下图应用了非常大的比例,但水平尺寸受到限制,因此将发生一些水平裁剪。
maxSize的默认值为go.Size(2000, 2000),并且指定go.Size(600, NaN)等效于指定go.Size(600, 2000)。如果我们不想在高度上修剪,我们可以写go.Size(600, Infinity)。
myDiagram.makeImage({
scale:9,
maxSize:new go.Size(600,NaN)
});
myDiagram.makeImage({
position: new go.Point(20,20),
size: new go.Size(50,50)
});
将背景设置为CSS颜色字符串将用给定的颜色替换透明的Diagram背景。myDiagram.makeImage({
size: new go.Size(NaN,250),
background: "rgba(0, 255, 0, 0.5)" // semi-transparent green background
});
var d = myDiagram.documentBounds;
var halfWidth = d.width / 2;
var halfHeight = d.height / 2;
img = myDiagram.makeImage({
position: new go.Point(d.x, d.y),
size: new go.Size(halfWidth,halfHeight)
});
addImage(img); // Adds the image to a DIV below
img = myDiagram.makeImage({
position: new go.Point(d.x + halfWidth, d.y),
size: new go.Size(halfWidth,halfHeight)
});
addImage(img);
img = myDiagram.makeImage({
position: new go.Point(d.x, d.y+ halfHeight),
size: new go.Size(halfWidth,halfHeight)
});
addImage(img);
img = myDiagram.makeImage({
position: new go.Point(d.x + halfWidth, d.y + halfHeight),
size: new go.Size(halfWidth,halfHeight)
});
addImage(img);
我们可以设置参数对象的类型和详细信息属性,以检索不同类型的图像。唯一受广泛支持的类型是“ image / jpeg”。jpeg的详细信息通过使用0到1之间的值(包括0和1)来确定其质量。Jpegs通常不用于图表,因为它们的有损压缩会导致文本不可读。
下图是输出的jpeg。请注意透明背景如何变为黑色,因为jpeg格式不支持alpha透明,并且HTML5画布的默认状态是完全透明的黑色像素rgba(0,0,0,0)。
myDiagram.makeImage({
scale:1,
type:“ image / jpeg”
});
myDiagram.makeImage({
scale: 1,
background: "AntiqueWhite",
type: "image/jpeg"
});
myDiagram.makeImage({
scale: 1,
background: "AntiqueWhite",
type: "image/jpeg",
details: 0.05
});
下载图像
如果您希望用户下载图像,则无需涉及Web服务器。请参阅样本“Minimal Blob ”。请注意,该示例仅下载单个图像。
如果用户可以接受该选择,建议您使用SVG下载图像。该样本位于最小SVG处。
想要购买GoJS正版授权,或了解更多产品信息请点击


QQ交谈
在线咨询

渝公网安备
50010702500608号

客服热线