Mam skrypt, który zmienia rozmiar płótna w celu dopasowania do obrazu, który jest na nim ładowany, a następnie pobiera obraz z płótna. Muszę zmienić rozmiar, albo pobrany obraz zawiera wszelkie białe znaki i wygląda na mniejszy niż powinien.Poczekaj, aż zmiany CSS (zmiana rozmiaru) zostaną zastosowane przed kontynuowaniem skryptu.
originalImg.onload = function() {
var width = originalImg.width;
var height = originalImg.height;
$("#myCanvas").css({ "height": height + "px", "width": width + "px", "margin-bottom": -height + "px" });
var c = viewer.drawer.canvas;
c.toBlob(function(blob) {
saveAs(blob, '@Model.DatabaseName' + '.jpg');
});
}
originalImg.src = originalSrc;
Ale po pobraniu obrazu nadal ma wszystkie białe znaki. Mój skrypt kończy się przed zmianą rozmiaru płótna, mimo że zmieniam go na samym początku. Jak mogę zmienić rozmiar płótna przed ukończeniem reszty skryptu?
edytuj: Widzę krok po kroku, że cały skrypt kończy się, zanim płótno zmieni rozmiar strony.
Metoda 'css()' powinna być synchroniczna (chyba że w CSS zastosowano 'przejścia '). Czy możesz podać przykład problemu w http://jsfiddle.net? –
Nie, naprawdę nie mogę. Moja strona ładuje obrazy DZI na seadragonowej przeglądarce, która wymaga klucza dostępu, który jest pobierany przez serwer. Nie mogę tego zreplikować na jsfiddle. –
umieść 'console.log' info lub' alert' wewnątrz funkcji 'originalImg.onload', aby zobaczyć, czy faktycznie wchodzi w kod. – dsharew