从 public highchart 导出服务器获取 base64 图像
Get base64 image from public highchart export server
有什么方法可以从 highcharts public 导出服务器获取 base64 图像(而不是 png、jpg、pdf)?
服务器:http://export.highcharts.com/
编辑:
我想要做的是在服务器端呈现图表并将它们存储为 base64。我可以按照这里的说明设置一个小型网络服务器来做到这一点 highcharts.com/docs/export-module/render-charts-serverside 但这意味着我需要在某个地方托管它,我想弄清楚我是否可以这样做避免。
我在下拉列表中没有看到选项 base64
。所以可能答案是否定的。
但你可以获得 png、jpg 或其他格式,然后使用 base64 online 之类的东西对其进行编码。
因为这是我想从后端做的事情,不需要先渲染图表,所以我最终从 public 导出服务器获取图像,然后从后端将其转换为 base64使用 RestSharp 执行请求 (C#)
public static string Render(Well well, string type)
{
var client = new RestClient("http://export.highcharts.com");
StringBuilder json = new StringBuilder('the options of the chart');
var request = new RestRequest("/", Method.POST);
request.AddHeader("Content-Type", "multipart/form-data");
request.AddParameter("content", "options");
request.AddParameter("options", json);
request.AddParameter("constr", "Chart");
request.AddParameter("type", "image/png");
var response = (RestResponse) client.Execute(request);
return Convert.ToBase64String(response.RawBytes);
}
到 post 已经很晚了,但是您可以从 http://export.highcharts.com 获得 base64。
您需要在 Request
中传递以下配置
let chartData = {
infile: CHART_DATA,
b64: true // Bool, set to true to get base64 back instead of binary.
width: 600,
constr : "Chart"
}
你可以使用下面的例子
fetch("https://export.highcharts.com/", {
"headers": {
"content-type": "application/json",
},
"body": "{\"infile\":\"{\n \\"xAxis\\": {\n \\"categories\\": [\n \\"Jan\\",\n \\"Feb\\",\n \\"Mar\\",\n \\"Apr\\",\n \\"May\\",\n \\"Jun\\",\n \\"Jul\\",\n \\"Aug\\",\n \\"Sep\\",\n \\"Oct\\",\n \\"Nov\\",\n \\"Dec\\"\n ]\n },\n \\"series\\": [\n {\n \\"data\\": [1,3,2,4],\n \\"type\\": \\"line\\"\n },\n {\n \\"data\\": [5,3,4,2],\n \\"type\\":\\"line\\"\n }\n ]\n}\n\",\"width\":600,\"constr\":\"Chart\",\"b64\":true}",
"method": "POST",
"mode": "cors"
}).then(function(response) {
// The response is a Response instance.
return response.text();
}).then(function(data) {
console.log(data); // base64 data
}).catch(function(err) { console.log(err);})
有什么方法可以从 highcharts public 导出服务器获取 base64 图像(而不是 png、jpg、pdf)?
服务器:http://export.highcharts.com/
编辑: 我想要做的是在服务器端呈现图表并将它们存储为 base64。我可以按照这里的说明设置一个小型网络服务器来做到这一点 highcharts.com/docs/export-module/render-charts-serverside 但这意味着我需要在某个地方托管它,我想弄清楚我是否可以这样做避免。
我在下拉列表中没有看到选项 base64
。所以可能答案是否定的。
但你可以获得 png、jpg 或其他格式,然后使用 base64 online 之类的东西对其进行编码。
因为这是我想从后端做的事情,不需要先渲染图表,所以我最终从 public 导出服务器获取图像,然后从后端将其转换为 base64使用 RestSharp 执行请求 (C#)
public static string Render(Well well, string type)
{
var client = new RestClient("http://export.highcharts.com");
StringBuilder json = new StringBuilder('the options of the chart');
var request = new RestRequest("/", Method.POST);
request.AddHeader("Content-Type", "multipart/form-data");
request.AddParameter("content", "options");
request.AddParameter("options", json);
request.AddParameter("constr", "Chart");
request.AddParameter("type", "image/png");
var response = (RestResponse) client.Execute(request);
return Convert.ToBase64String(response.RawBytes);
}
到 post 已经很晚了,但是您可以从 http://export.highcharts.com 获得 base64。 您需要在 Request
中传递以下配置let chartData = {
infile: CHART_DATA,
b64: true // Bool, set to true to get base64 back instead of binary.
width: 600,
constr : "Chart"
}
你可以使用下面的例子
fetch("https://export.highcharts.com/", {
"headers": {
"content-type": "application/json",
},
"body": "{\"infile\":\"{\n \\"xAxis\\": {\n \\"categories\\": [\n \\"Jan\\",\n \\"Feb\\",\n \\"Mar\\",\n \\"Apr\\",\n \\"May\\",\n \\"Jun\\",\n \\"Jul\\",\n \\"Aug\\",\n \\"Sep\\",\n \\"Oct\\",\n \\"Nov\\",\n \\"Dec\\"\n ]\n },\n \\"series\\": [\n {\n \\"data\\": [1,3,2,4],\n \\"type\\": \\"line\\"\n },\n {\n \\"data\\": [5,3,4,2],\n \\"type\\":\\"line\\"\n }\n ]\n}\n\",\"width\":600,\"constr\":\"Chart\",\"b64\":true}",
"method": "POST",
"mode": "cors"
}).then(function(response) {
// The response is a Response instance.
return response.text();
}).then(function(data) {
console.log(data); // base64 data
}).catch(function(err) { console.log(err);})