Я использую html2canvas.js, чтобы получить изображение с веб-страницы, которое сохраняет его в каталог в веб-корне, чтобы это изображение можно было загрузить и опубликовать в Facebook. Проблема, которую я получаю, заключается в том, что изображение не изменяется в размере, и после загрузки в Facebook оно сохраняет исходные размеры, поэтому обрезает часть изображения. Есть ли где я могу заставить / изменить ширину и высоту в процессе? (т.е. до того, как html2Canvas сохранит изображение?)
html2canvas(
document.getElementById('strengths-display'),
{
canvas: canvas
}
).then(function (canvas) {
let data = canvas.toDataURL();
$.post('{% url 'save_strengths_image' %}', {
binary_data: data,
csrfmiddlewaretoken: getCookie('csrftoken')
}).done(function () {
$('#fbshare').on('click', function (ev) {
ev.preventDefault();
FB.ui({
method: "feed",
link: "{% fullurl 'facebook_share_strengths' request.user.pk %}",
picture: "{{ scheme }}://{{ uri }}{% get_media_prefix %}{{ user.strengths_image }}",
name: "{% trans 'What Job Fits Me' %}",
caption: '{{ site }}',
description: "{% trans 'Get the best from your potential!' %}",
display: 'popup'
}, function (t) {
let str = JSON.stringify(t);
let obj = JSON.parse(str);
if (obj.post_id != '') {
set_shared();
}
});
});
$('#fbshare').show();
});
<script src="{% static 'js_static/html2canvas.js' %}"></script>
<script>
let canvas = document.getElementById('image_canvas');
html2canvas(
document.getElementById('strengths-display'),
{
canvas: canvas
}
).then(function (canvas) {
let data = canvas.toDataURL();
$.post('{% url 'save_strengths_image' %}', {
binary_data: data,
csrfmiddlewaretoken: getCookie('csrftoken')
}).done(function () {
$('#fbshare').on('click', function (ev) {
ev.preventDefault();
FB.ui({
method: "feed",
link: "{% fullurl 'facebook_share_strengths' request.user.pk %}",
picture: "{{ scheme }}://{{ uri }}{% get_media_prefix %}{{ user.strengths_image }}",
name: "{% trans 'What Job Fits Me' %}",
caption: '{{ site }}',
description: "{% trans 'Get the best from your potential!' %}",
display: 'popup'
}, function (t) {
let str = JSON.stringify(t);
let obj = JSON.parse(str);
if (obj.post_id != '') {
set_shared();
}
});
});
$('#fbshare').show();
});
<div id="canvas-container-hidden">
<canvas id="image_canvas"></canvas>
</div>
введите описание изображения здесь