')
// grecaptcha.render('div-show-recaptcha', {
// sitekey: '6Ld4mcsUAAAAAGRVf7_Mix45AEx6nGGiH88zr4pH',
// callback: function(response) {
// if(response.length > 0){
// upload_image_using_ajax(source_image, autogenerate_id, csrftoken)
// $('#recaptcha-main-div').html('');
// $('#recaptcha-main-div').css('display', 'none');
// }
// },
// theme: 'dark'
// });
// }else{
// upload_image_using_ajax(source_image, autogenerate_id, csrftoken)
// }
// }
}
function is_recaptcha_solved(){
return true;
// return isRecaptchaSolved;
}
function onSubmit(token){
if (global_source_image != '' && global_source_image != null) {
$('.btn2_upload').css({'display': ''});
$('.upload_image_div').css({'display': 'none'});
$('#upload_important_text').css('display', '');
$(document).scrollTop(0);
}
remove_bg(global_source_image)
//
// var csrftoken = $('meta[name=csrf-token]').attr('content');
// var formdata = new FormData();
// formdata.append("token", token);
//
// $.ajaxSetup({
// beforeSend: function (xhr, settings) {
// if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type)) {
// xhr.setRequestHeader("X-CSRFToken", csrftoken)
// }
// }
// });
//
// $.ajax({
// url: '/get-recaptcha-score',
// type: 'POST',
// processData: false,
// contentType: false,
// data: formdata,
// async: false,
// success: function (data) {
// isRecaptchaSolved = data.status;
// remove_bg(global_source_image)
// }
// });
}
function createAutogeneratedID(){
return autogenerate_id = Math.random().toString(36).substr(2, 5);
}
function initializeImageDiv(autogen_id){
var generatedsHtml = generate_html(autogen_id, '', '', true);
$('.upload_image_div').css({'display': 'none'});
$('#upload_important_text').css('display', '');
$('.btn2_upload').css({'display': 'block'});
$("#main_image_container").prepend(generatedsHtml);
}
function showHideImageUploadLoader(autogen_id, isShow){
if(isShow){
$('#icon_close_' + autogen_id).css('display', 'none');
$('#progress_bar_div_' + autogen_id).css('display', '');
$('#progress_bar_div_gradient_' + autogen_id).css('display', '');
$('.clsBtnGradient_' + autogen_id).css('display', '');
}else{
$('#progress_bar_div_' + autogen_id).css('display', 'none');
$('#progress_bar_div_gradient_' + autogen_id).css('display', 'none');
$('#progress_bar_div_gradient_' + autogen_id).css('display', 'none');
$('.clsBtnGradient_' + autogen_id).css('display', 'none');
}
}
function removeImageDiv(autogen_id){
$('#slazzerImageDiv' + autogen_id).remove();
}
function activateTabRemoveBackground(autogenID){
$('#originalImage_' + autogenID).removeClass('active');
$('#transparentBg_' + autogenID).addClass('active');
$('#original_' + autogenID).removeClass('active show');
$('#transparent_' + autogenID).addClass('active show');
}
function trustTokenAPI(){
var csrftoken = $('meta[name=csrf-token]').attr('content');
var formdata = new FormData();
$.ajaxSetup({
beforeSend: function (xhr, settings) {
if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type)) {
xhr.setRequestHeader("X-CSRFToken", csrftoken)
}
}
});
$.ajax({
url: '/auth/trust_token',
type: 'POST',
processData: false,
contentType: false,
async: false,
data: formdata,
success: function (data) {
},
error: function (error){}
});
}
function redirectPage(langCode){
if (langCode == undefined){return false;}
var pathname = window.location.pathname;
var splitData = pathname.split("/");
if(splitData.length == 2){
// if(splitData[1] == "help" || splitData[1] == "blog/" || splitData[1] == "help/" || splitData[1] == "blog"){
if(splitData[1] == "blog/" || splitData[1] == "blog"){
langCode = 'en'
}
if(langCode == 'en'){
redirectURL = '/'
}else{
if(splitData[1] == ''){
redirectURL = '/' + langCode
}else{
var langList = ['de', 'fr', 'it', 'ja', 'ru', 'id', 'es', 'pt', 'ko', 'zh', 'zh_hant_tw']
if(langList.includes(splitData[1])){
redirectURL = '/' + langCode
}else{
redirectURL = '/' + langCode + '/' + splitData[1]
}
}
}
}
else if(splitData.length == 3){
var langList = ['de', 'fr', 'it', 'ja', 'ru', 'id', 'es', 'pt', 'ko', 'zh', 'zh_hant_tw']
if(langList.includes(splitData[1])){
if(langCode == 'en'){
redirectURL = '/' + splitData[2]
}else{
redirectURL = '/' + langCode + '/' + splitData[2]
}
}else{
if(splitData[1] == "background-remover"){
redirectURL = '/' + splitData[1] + '/' + splitData[2]
}else{
redirectURL = '/' + langCode + '/' + splitData[1] + '/' + splitData[2]
}
}
}
else if(splitData.length == 4){
if(langCode == 'en'){
redirectURL = '/' + splitData[2] + '/' + splitData[3]
}else{
if(splitData[2] == "background-remover"){
redirectURL = '/' + splitData[2] + '/' + splitData[3]
}else{
redirectURL = '/' + langCode + '/' + splitData[2] + '/' + splitData[3]
}
}
}
// window.location.href = redirectURL;
save_lang_code(langCode, redirectURL)
}
function changeLanguageButton(){
if(LANG_CODE == ''){LANG_CODE = "/en"}
$('#btnSelectLanguage').html("");
var lang = LANG_CODE.replace('/', '');
$('#btnSelectLanguage').html($('#for' + lang.toUpperCase()).html());
}
function save_lang_code(LANG_CODE, redirectURL){
var formdata = new FormData()
formdata.append("lang_code", LANG_CODE)
var csrftoken = $('meta[name=csrf-token]').attr('content');
$.ajaxSetup({
beforeSend: function (xhr, settings) {
if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type)) {
xhr.setRequestHeader("X-CSRFToken", csrftoken)
}
}
});
$.ajax({
url: '/save_lang_code',
type: 'POST',
processData: false,
contentType: false,
data: formdata,
success: function (data) {
if(data.status){
window.location.href = redirectURL;
}else{
window.location.reload();
}
},
error: function (error){}
});
}
function loadCloudflareRecaptcha(source_image, autogenerate_id, csrftoken, recaptchaDivId, is_existingImage){
var dataSitekey = "0x4AAAAAAARMQ_bSWt4IWzOR";
var hostName = $(location).attr('hostname');
if(hostName.indexOf("localhost") != -1){
dataSitekey = "0x4AAAAAAAQulv-eTqiKSZ4-";
}else if(hostName.indexOf("eutigo") != -1){
dataSitekey = "0x4AAAAAAARMQmALguP80a6K";
}else{
dataSitekey = "0x4AAAAAAARMQ_bSWt4IWzOR";
}
turnstile.render('#'+recaptchaDivId, {
sitekey: dataSitekey,
callback: function(token) {
apiTokenVerification(token, source_image, autogenerate_id, csrftoken, recaptchaDivId, is_existingImage)
}
});
}
function apiTokenVerification(token, source_image, autogenerate_id, csrftoken, recaptchaDivId, is_existingImage){
var csrftoken = $('meta[name=csrf-token]').attr('content');
var formdata = new FormData();
formdata.append("token", token);
$.ajaxSetup({
beforeSend: function (xhr, settings) {
if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type)) {
xhr.setRequestHeader("X-CSRFToken", csrftoken)
}
}
});
$.ajax({
url: '/verify-unauthorized-token',
type: 'POST',
processData: false,
contentType: false,
data: formdata,
success: function (data) {
if(data.status){
$('#' + recaptchaDivId).html('');
$(".recaptchaWrap").remove();
generateToken(source_image, autogenerate_id, csrftoken, is_existingImage)
}else{
loadCloudflareRecaptcha(source_image, autogenerate_id, csrftoken, recaptchaDivId, is_existingImage)
}
}
});
}
function upload_image_using_ajax_after_solve_recaptcha(token, source_image, autogenerate_id, csrftoken, is_existingImage, isVerified=false){
// if(isImageProcessing == true){
// alert("You can upload one image at a time");
// return false;
// }else{
// New Added
console.log("File size exceed55");
if(is_existingImage){
var img_format = "jpg";
}else{
var img_format = source_image.name.replace(/^.*\./, '');
}
var f_list = ['jpg','JPG','png','PNG','jpeg', 'JPEG','webp','WEBP','bmp','BMP'];
if(jQuery.inArray(img_format, f_list) == -1){
$('#progress_bar_div').css('display', 'none');
removeImageDiv(autogenerate_id)
NO_Of_IMAGES = NO_Of_IMAGES - 1;
if(NO_Of_IMAGES <= 0){
// $(window).scrollTop(0);
$('#upload_important_text').css('display', 'none');
$('.btn2_upload').css({'display': 'none'});
$('.upload_image_div').css({'display': ''});
}
alert("Only jpg, png, and jpeg, webp file format supported");
return false;
}
// End New Added
show_desktop_popup()
// $(window).scrollTop(0);
var y = $(window).scrollTop();
$(window).scrollTop(y+100);
// var trustToken = trustTokenAPI()
// return false;
isImageProcessing = true
var formdata = new FormData();
console.log("File size exceed5");
if(is_existingImage){
formdata.append("image_url", source_image);
}else{
if(ORIGINAL_UPLOADED_IMAGE != null){
console.log("File size exceed");
if (is_file_size_exceed(ORIGINAL_UPLOADED_IMAGE)){
console.log("File size exceed2");
$('.drag-drop').hide();
return;
}
formdata.append("source_image_file", ORIGINAL_UPLOADED_IMAGE);
}else{
alertManager("Original image not found. Please upload the image again.");
return false;
}
// formdata.append("source_image_file", source_image);
}
formdata.append("autogenerate_id", autogenerate_id);
formdata.append("is_verified", isVerified);
$.ajaxSetup({
beforeSend: function (xhr, settings) {
if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type)) {
xhr.setRequestHeader("X-CSRFToken", csrftoken);
xhr.setRequestHeader("X-Trust-Token", token);
}
}
});
$(".user_image_upload").attr("disabled", true);
$.ajax({
url: '/upload_image',
type: 'POST',
processData: false,
contentType: false,
data: formdata,
xhr: function () {
$(window).scrollTop(0);
var xhr = new window.XMLHttpRequest();
xhr.upload.addEventListener("progress", function (evt) {
if (evt.lengthComputable) {
var current_progress = evt.loaded / evt.total;
current_progress = parseInt(current_progress * 100);
$("#dynamic_" + autogenerate_id).css("width", current_progress + "%").attr("aria-valuenow", current_progress);
$('#transparentBg_' + autogenerate_id).css('pointer-events', 'none');
if (current_progress >= 1) {
showHideImageUploadLoader(autogenerate_id, true)
}
if (current_progress === 100) {
var reader = new FileReader();
$('#dynamicText_' + autogenerate_id).text("Processing.....");
if(is_existingImage){
$('#source_image_' + autogenerate_id).attr('src', source_image);
setTimeout(function () {
var browse_img_height = $('#source_image_' + autogenerate_id).height();
var browse_img_width = $('#source_image_' + autogenerate_id).width();
var RATIO = 0;
var GENERATE_HEIGHT = 0;
var GENERATE_WIDTH = 0;
if (browse_img_height > 600) {
if (browse_img_width > browse_img_height) {
RATIO = browse_img_height / browse_img_width;
GENERATE_WIDTH = 600;
GENERATE_HEIGHT = 600 * RATIO;
} else {
RATIO = browse_img_width / browse_img_height;
GENERATE_HEIGHT = 600;
GENERATE_WIDTH = 600 * RATIO;
}
} else {
GENERATE_WIDTH = browse_img_width;
GENERATE_HEIGHT = browse_img_height;
}
// $('#source_image_' + autogenerate_id).height(GENERATE_HEIGHT);
// $('#source_image_' + autogenerate_id).width(GENERATE_WIDTH);
$('#gradient_element_' + autogenerate_id).height(GENERATE_HEIGHT);
// $('#output_image_div_' + autogenerate_id).width(GENERATE_WIDTH);
}, 80);
}else{
reader.onload = function (f) {
$('#source_image_' + autogenerate_id).attr('src', f.target.result);
setTimeout(function () {
var browse_img_height = $('#source_image_' + autogenerate_id).height();
var browse_img_width = $('#source_image_' + autogenerate_id).width();
var RATIO = 0;
var GENERATE_HEIGHT = 0;
var GENERATE_WIDTH = 0;
if (browse_img_height > 600) {
if (browse_img_width > browse_img_height) {
RATIO = browse_img_height / browse_img_width;
GENERATE_WIDTH = 600;
GENERATE_HEIGHT = 600 * RATIO;
} else {
RATIO = browse_img_width / browse_img_height;
GENERATE_HEIGHT = 600;
GENERATE_WIDTH = 600 * RATIO;
}
} else {
GENERATE_WIDTH = browse_img_width;
GENERATE_HEIGHT = browse_img_height;
}
// $('#source_image_' + autogenerate_id).height(GENERATE_HEIGHT);
// $('#source_image_' + autogenerate_id).width(GENERATE_WIDTH);
$('#gradient_element_' + autogenerate_id).height(GENERATE_HEIGHT);
// $('#output_image_div_' + autogenerate_id).width(GENERATE_WIDTH);
}, 80);
};
reader.readAsDataURL(source_image);
}
}
}
}, false);
return xhr;
},
success: function (data) {
$(".user_image_upload").attr("disabled", false);
$('#transparentBg_' + autogenerate_id).css('pointer-events', '');
activateTabRemoveBackground(autogenerate_id)
showHideImageUploadLoader(autogenerate_id, false)
isImageProcessing = false;
remove_image_background(data, autogenerate_id)
$('#icon_close_' + autogenerate_id).css('display', '');
$('#textAfter').removeClass('active');
$('#textBefore').removeClass('active');
},
error: function(qXHR, textStatus, errorThrown){
if(qXHR.status == 429){
alert("Upload Limit Exited. You have upload 10 images in a minute. Please try again after 1 minute.");
window.location.reload();
}
$(".user_image_upload").attr("disabled", false);
}
});
// }
}
function sampleImageListWithClass(){
var firstData = randomIntFromInterval(1, 7);
var secondData = randomIntFromInterval(8, 14);
var thirdData = randomIntFromInterval(15, 21);
var forthData = randomIntFromInterval(22, 28);
var listNumber = [firstData, secondData, thirdData, forthData];
var html = "";
for(var i=0; i
`;
}
$('.sampleImageListWithClass').html("");
$('.sampleImageListWithClass').html(html);
}
function randomIntFromInterval(min, max) {
return Math.floor(Math.random() * (max - min + 1) + min);
}
function generateToken(source_image, autogenerate_id, csrftoken, is_existingImage) {
var csrftoken = $('meta[name=csrf-token]').attr('content');
var formdata = new FormData();
$.ajaxSetup({
beforeSend: function(xhr, settings) {
if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type)) {
xhr.setRequestHeader("X-CSRFToken", csrftoken)
}
}
});
$.ajax({
url: '/generate_trust_token',
type: 'POST',
processData: false,
contentType: false,
data: formdata,
success: function(data) {
upload_image_using_ajax_after_solve_recaptcha(data.trust_token, source_image, autogenerate_id, csrftoken, is_existingImage)
},
error: function(xhr, status, error) {
if(xhr.status == 429){
alert("Upload Limit Exited. You have upload 10 images in a minute. Please try again after 1 minute.");
window.location.reload();
}
showHideImageUploadLoader(autogenerate_id, false)
isImageProcessing = false;
}
});
}
function getMobileOperatingSystem() {
var userAgent = navigator.userAgent || navigator.vendor || window.opera;
if (/android/i.test(userAgent)) {
return "android";
}
if (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream) {
return "ios";
}
return "Unknown";
}
function getMobileApp(){
var mobileOS = getMobileOperatingSystem();
if(mobileOS == 'ios'){
var APP_URL = "https://apps.apple.com/in/app/slazzer-background-remover/id6499511787";
}else{
var APP_URL = "https://play.google.com/store/search?q=slazzer&c=apps";
}
$('#getMobileApp').attr('href', APP_URL)
}
function showMobileAppPopup(){
if($.cookie('_mobile_app_popup') == undefined){
$('#divGetMobileApp').addClass('show');
}
}
function showCreditInfo(URL="/get_total_credit") {
$.ajaxSetup({
beforeSend: function(xhr, settings) {
if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type)) {
xhr.setRequestHeader("X-CSRFToken", csrftoken)
}
}
});
$.ajax({
url: URL,
method: 'GET',
success: function(data) {
CREDIT_COUNT = parseInt(data);
},
error: function(xhr, status, error) {
}
});
}
function showChangeLogInHeader() {
$.ajax({
url: '/change-log-details',
method: 'GET',
success: function(response) {
if (!response.status) return;
let FINAL_HTML = '';
let showLogCount = 0;
if(response.data.is_active_icon_show){$("#dropdownMenuButtonNotificationToggleACTIVE").css('display', '')}
outer: for (let historyLog of response.data.details) {
for (let LOG of historyLog.updates) {
FINAL_HTML += `
${historyLog.date} ${LOG}
`;
if (++showLogCount === 3) break outer;
}
}
if (window.location.pathname === '/change-log') {
if(response.data.details.length > 1){
$('#changeLogDetailsHistory').html('');
outer: for (let historyLog of response.data.details) {
var flexBox = `${historyLog.date} `
for (let LOG of historyLog.updates) {
flexBox += `
${LOG}
`;
}
flexBox += ` `;
$('#changeLogDetailsHistory').append(flexBox);
}
}else{
$('#changeLogDetailsHistory').html('No update available');
}
}
$('#dropdownMenuButtonNotificationToggleID')
.html(FINAL_HTML)
.append(`View All `);
}
});
}
function closeHeaderPromotionBar(){
$('#headerFeaturesList').remove();
$('#navBer').removeClass('featureDrawerShow');
$('#header').css('top', 0);
}
// ======================== NEW UPLOAD DESIGN JS ========================
function addImageIntoLeftMenu(base64Image){
isImageCorrupted(base64Image).then(isCorrupted => {
if (!isCorrupted) {
$('#drag-drop-more-then-one').css('display', 'none');
$('#imageUploadSection').css('display', '');
$('#ImageUploadSection').addClass('image-upload-visible');
if(window.location.pathname == '/'){
$(".main-container").css('display', 'none');
$(".upload-container").css('display', '');
}
let autoGenIDv2 = createAutogeneratedID()
$('#previewMainImage').attr('src', base64Image);
let HTML = `
`;
$('.sidePanelImage').removeClass('active');
$('#imageEditorSidePanel li:first').after(HTML);
NEW_EDITOR_ORIGINAL_BASE64_IMG = base64Image;
manageImageAfterUpload(base64Image, autoGenIDv2);
} else {
alertManager("error", "The uploaded image is corrupted. Please try with a different image.");
loaderManager()
isImageProcessing = false;
}
});
}
async function imageUrlToBase64(imageUrl) {
const response = await fetch(imageUrl);
const blob = await response.blob();
return new Promise((resolve, reject) => {
const reader = new FileReader();
reader.onloadend = () => resolve(reader.result); // Base64 string
reader.onerror = reject;
reader.readAsDataURL(blob);
});
}
async function fileToBase64(file) {
return new Promise((resolve, reject) => {
const reader = new FileReader();
reader.onloadend = () => resolve(reader.result); // Base64 string
reader.onerror = reject;
reader.readAsDataURL(file); // Reads file as Base64
});
}
function base64ToFile(base64String, filename="image.jpg") {
const arr = base64String.split(',');
const mimeMatch = arr[0].match(/:(.*?);/);
const mime = mimeMatch ? mimeMatch[1] : 'application/octet-stream';
const bstr = atob(arr[1]);
let n = bstr.length;
const u8arr = new Uint8Array(n);
while (n--) {
u8arr[n] = bstr.charCodeAt(n);
}
return new File([u8arr], filename, { type: mime });
}
function manageImageAfterUpload(base64Img, autoGenIDv2){
generateTokenV2(function(err, token) {
if (!err) {
resetZoom()
uploadImageForProcess(token, base64Img, autoGenIDv2)
}
});
}
function generateTokenV2(callback) {
var csrftoken = $('meta[name=csrf-token]').attr('content');
var formdata = new FormData();
loaderManager(true)
$.ajaxSetup({
beforeSend: function(xhr, settings) {
if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type)) {
xhr.setRequestHeader("X-CSRFToken", csrftoken);
}
}
});
$.ajax({
url: '/generate_trust_token',
type: 'POST',
processData: false,
contentType: false,
data: formdata,
success: function(data) {
if (typeof callback === 'function') {
callback(null, data.trust_token); // Pass token to callback
}
},
error: function(xhr, status, error) {
loaderManager()
if (xhr.status === 429) {
alert("Upload Limit Exceeded. You have uploaded 10 images in a minute. Please try again after 1 minute.");
window.location.reload();
}
if (typeof callback === 'function') {
callback(error || `Error ${xhr.status}: ${status}`);
}
isImageProcessing = false;
}
});
}
function uploadImageForProcess(token, source_image_base64, autoGenIDv2){
let formdata = new FormData();
formdata.append("autogenerate_id", autoGenIDv2);
// formdata.append("source_image_file", base64ToFile(source_image_base64, "image.jpg"));
const file = base64ToFile(source_image_base64, "image.jpg")
if (!is_file_size_exceed(file)) {
formdata.append("source_image_file", file);
// Continue upload...
}
$.ajaxSetup({
beforeSend: function (xhr, settings) {
if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type)) {
xhr.setRequestHeader("X-CSRFToken", CSRF_TOKEN);
xhr.setRequestHeader("X-Trust-Token", token);
}
}
});
$('#downloadButtonContent').html("");
$('#downloadButtonContent').css('display', 'none');
$('#btnEditSection').css('display', 'none');
$('#rateUsSection').css('display', 'none');
$('#imageUploadSection').addClass('image-upload-visible');
IS_IMAGE_PROCESSING = true;
IMAGE_HISTORY_ACTIVATE_AG_ID_TEMP = autoGenIDv2;
$.ajax({
url: '/upload_image',
type: 'POST',
processData: false,
contentType: false,
data: formdata,
xhr: function () {
$(window).scrollTop(0);
let xhr = new window.XMLHttpRequest();
xhr.upload.addEventListener("progress", function (evt) {
if (evt.lengthComputable) {
let current_progress = evt.loaded / evt.total;
current_progress = parseInt(current_progress * 100);
}
}, false);
return xhr;
},
success: function (data) {
loaderManager()
IS_IMAGE_PROCESSING = false;
isImageProcessing = false;
uploadImageAfterProcess(data, autoGenIDv2)
},
error: function(qXHR, textStatus, errorThrown){
IS_IMAGE_PROCESSING = false;
isImageProcessing = false;
loaderManager()
if(qXHR.status == 429){
alertManager("warning", "Upload Limit Exceeded. You have uploaded 10 images in a minute. Please try again after 1 minute.");
}else{
alertManager("error", "Something went wrong. Please try again later.");
}
revertPreviewImage()
}
});
}
function uploadImageAfterProcess(data, autoGenIDv2){
var obj = JSON.parse(data);
if(obj.status){
IMAGE_HISTORY.push({"id": autoGenIDv2, "res": obj});
IMAGE_HISTORY_ACTIVATE_AG_ID = autoGenIDv2;
manageBeforeAfterImage('after');
downloadDropdownItemsManger(autoGenIDv2)
editDropdownItemsManger(autoGenIDv2)
editLikeDislikeManger(autoGenIDv2)
$('#btnEditSection').css('display', '');
$('#downloadButtonContent').css('display', '');
$('#rateUsSection').css('display', '');
$('#textAfter').addClass('active');
$('#textBefore').removeClass('active');
}else{
$('#downloadButtonContent').css('display', 'none');
revertPreviewImage()
}
}
function loaderManager(isShow=false){
if(isShow){
$('#previewMainImageLoader').css('display', '');
$('#previewMainImageLoader01').css('display', '');
}else{
$('#previewMainImageLoader').css('display', 'none');
$('#previewMainImageLoader01').css('display', 'none');
}
}
function downloadDropdownItemsManger(autoGenIDv2){
var obj = getDataFromHistory()
let isShowFree = true;
var isShowUnlockPro = CREDIT_COUNT < 1 ? true : false;
let finalContent = previewDownloadItem(obj.preview_size_image_width, obj.preview_size_image_height, autoGenIDv2, isShowFree) +
hdDownloadItem(obj.full_size_image_width, obj.full_size_image_height, autoGenIDv2, isShowUnlockPro, obj.full_size_image_available);
$('#downloadButtonContent').css("display", '');
$('#downloadButtonContent').html(
`
Download
`
);
}
function editDropdownItemsManger(autoGenIDv2){
var EditPreview = `
Edit preview
`;
var full_size_image_available = getDataFromHistory("full_size_image_available")
if(full_size_image_available){
var EditHD = `
Edit HD
`;
}else{
var EditHD = "";
}
$('#editDropdownMenuContent').html(EditPreview + EditHD);
}
function editLikeDislikeManger(autoGenIDv2){
$('#rateUsSection').css('display', '');
var obj = getDataFromHistory("is_image_liked");
if(obj){
$('#rateUsSection').html(
`😊 Thank you for your valuable feedback
`
);
}else{
$('#rateUsSection').html(
`
Rate this result:
`
);
}
}
function previewDownloadItem(w, h, autoGenIDv2, isShowMsg=true){
let button = isShowMsg ? `Free ` : "";
return `
`+button+`
`;
}
function hdDownloadItem(w, h, autoGenIDv2, isShowMsg=true, full_size_image_available=true){
let button = isShowMsg ? ``+(isShowMsg ? "Download" : "Unlock Pro")+` `: "";
if(full_size_image_available){
return `
HD Quality
`+w+` × `+h+`
`+button+`
`;
}else{
return `
HD Quality
Image size too small
`;
}
}
function alertManager(alertType, message="Something went wrong"){
if(alertType == 'success'){
var alertClass = "alert-success";
}else if(alertType == 'info'){
var alertClass = "alert-info";
}else if(alertType == 'warning'){
var alertClass = "alert-danger";
}else{
var alertClass = "alert-danger";
}
$('.notification-alert').html(``);
$(document).scrollTop(0);
setTimeout(function () {
$('.notification-alert').html('');
}, 3000);
}
function downloadHdImageAPI(isEdit=false){
checkUserAuthentication(function(isAuthenticated){
if(!isAuthenticated){
var msg = isEdit
? "Please login first before edit HD image."
: "Please login first before download HD image.";
$('#showLoginPopupMessage').html(msg);
$('#LoginModal').modal('show');
return false;
}else{
var imgObj = getDataFromHistory()
if(imgObj.session_obj.is_image_downloaded == '0'){
var image_url = imgObj['original_image'];
var source_image_width = imgObj['preview_size_image_width'];
var source_image_height = imgObj['preview_size_image_height'];
var output_image_width = imgObj['full_size_image_width'];
var output_image_height = imgObj['full_size_image_height'];
var csrftoken = $('meta[name=csrf-token]').attr('content');
var formData = new FormData();
formData.append("api_source", 'upload');
formData.append("image_url", image_url);
formData.append("source_image_width", source_image_width);
formData.append("source_image_height", source_image_height);
formData.append("output_image_width", output_image_width);
formData.append("output_image_height", output_image_height);
formData.append("is_image_downloaded", imgObj['session_obj']['is_image_downloaded']);
formData.append("session_key", IMAGE_HISTORY_ACTIVATE_AG_ID + "_" + imgObj['session_obj']['current_time']);
$.ajaxSetup({
beforeSend: function (xhr, settings) {
if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type)) {
xhr.setRequestHeader("X-CSRFToken", csrftoken)
}
}
});
IS_IMAGE_PROCESSING = true;
if(isEdit){
$('#editHDButtonLoader').css('display', '');
$('#btnEditSection').css('pointer-events', 'none');
}else{
$('#downloadHDButtonLoader').css('display', '');
$('#downloadButtonContent').css('pointer-events', 'none');
}
$.ajax({
url: '/get_full_size_image',
type: 'POST',
processData: false,
contentType: false,
data: formData,
success: function (data) {
IS_IMAGE_PROCESSING = false;
if(isEdit){
$('#editHDButtonLoader').css('display', 'none');
$('#btnEditSection').css('pointer-events', '');
}else{
$('#downloadHDButtonLoader').css('display', 'none');
$('#downloadButtonContent').css('pointer-events', '');
}
var obj = JSON.parse(data);
if(obj.status){
updateDownloadImageObjectFromHistory(obj.full_image_url)
if(isEdit){
showHDImageEditor(autogenerate_id)
}else{
hdImageDownload(obj.full_image_url)
}
}else{
if(obj.msg_category == "no_credit"){
alertManager("error", "You don't have enough credits. Please pay and try again.");
$('#PaymentModalImage').attr('src', image_url);
$('#PaymentModal').modal('show');
}else{
alertManager("error", obj.message);
}
}
},
error: function(qXHR, textStatus, errorThrown){
IS_IMAGE_PROCESSING = false;
if(isEdit){
$('#editHDButtonLoader').css('display', 'none');
$('#btnEditSection').css('pointer-events', '');
}else{
$('#downloadHDButtonLoader').css('display', 'none');
$('#downloadButtonContent').css('pointer-events', '');
}
}
});
}
else{
if(isEdit){
showHDImageEditor(autogenerate_id)
}else{
hdImageDownload(imgObj.session_obj.hd_img_path)
}
}
}
});
}
function showPreviewImageEditor(autogenerate_id) {
var originalImageOutputURL = getDataFromHistory("original_image");
var previewImageOutputURL = getDataFromHistory("preview_size_output_image");
$('#drawing').html('');
$('.parent-spinner-border').css("display", "");
var source_image_base64 = $('#source_image_' + autogenerate_id).attr('src');
var image_tag = ' '
$('.btn_background_image, .btn_bg_image_color, .btn_bg_color').html(image_tag);
ORIGINAL_IMAGE_BASE64 = originalImageOutputURL;
OUTPUT_IMAGE_BASE64 = previewImageOutputURL;
$('#upload_preview_modal_close_btn').click();
$('#edit_image').modal('show');
$('.sp-preview-inner').css('background-color', 'transparent');
}
function showHDImageEditor(autogenerate_id) {
var originalImageOutputURL = getDataFromHistory("original_image");
var hdImageOutputURL = getDataFromHistory("hd_img_path", true);
$('#drawing').html('');
$('.parent-spinner-border').css("display", "");
var source_image_base64 = $('#source_image_' + autogenerate_id).attr('src');
var image_tag = ' '
$('.btn_background_image, .btn_bg_image_color, .btn_bg_color').html(image_tag);
ORIGINAL_IMAGE_BASE64 = originalImageOutputURL;
OUTPUT_IMAGE_BASE64 = hdImageOutputURL;
$('#upload_preview_modal_close_btn').click();
$('#edit_image').modal('show');
$('.sp-preview-inner').css('background-color', 'transparent');
}
function getDataFromHistory(data_type="", innerData=false){
for(var i=0; i😊 Thank you for your valuable feedback`
);
}else{
IMAGE_HISTORY[i]['res'].is_image_liked = "0";
}
break;
}
}
}
function hdImageDownload(HD_IMAGE_PATH){
var img_name_arr = HD_IMAGE_PATH.split('/');
var image_name = img_name_arr[img_name_arr.length - 1];
var a = document.createElement('a');
a.href = HD_IMAGE_PATH;
a.download = image_name;
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
}
function manageBeforeAfterImage(beforeAfterStr){
if(beforeAfterStr == 'before'){
var obj = getDataFromHistory()
if(obj){
var w = obj.preview_size_image_width;
var h = obj.preview_size_image_height;
BEFORE_AFTER_STRING = 'before';
showImageForPreviewWithCustomHeightAndWidth(obj.original_image, w, h);
}
}else{
var obj = getDataFromHistory()
if(obj){
var w = obj.preview_size_image_width;
var h = obj.preview_size_image_height;
BEFORE_AFTER_STRING = 'after';
showImageForPreviewWithCustomHeightAndWidth(obj.preview_size_output_image, w, h);
}
}
}
// Function to apply zoom
function applyZoom() {
$("#previewMainImage").css({
"transform": `scale(${scale})`,
"transform-origin": "center center", // Zoom from center
"transition": "transform 0.3s ease" // Smooth animation
});
}
function resetZoom(){
scale = 1;
zoomStep = 0.1;
maxZoom = 3;
minZoom = 0.5;
$("#previewMainImage").removeAttr("style");
}
function checkUserAuthentication(callback) {
var csrftoken = $('meta[name=csrf-token]').attr('content');
var formdata = new FormData();
$.ajaxSetup({
beforeSend: function(xhr, settings) {
if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type)) {
xhr.setRequestHeader("X-CSRFToken", csrftoken);
}
}
});
$.ajax({
url: '/user-authentication',
type: 'POST',
processData: false,
contentType: false,
data: formdata,
success: function(data) {
if (typeof callback === 'function') {
callback(data.is_login);
}
},
error: function(xhr, status, error) {
callback(false);
}
});
}
function isImageCorrupted(source_image_base64) {
return new Promise((resolve) => {
try {
const img = new Image();
img.onerror = function () {
resolve(true);
};
img.onload = function () {
resolve(false);
};
img.src = source_image_base64;
} catch (e) {
resolve(true);
}
});
}
function showImageForPreviewWithCustomHeightAndWidth(imageUrl, newWidth, newHeight){
fetch(imageUrl)
.then(response => response.blob())
.then(blob => {
let reader = new FileReader();
reader.onloadend = function () {
$('#previewMainImage')
.attr('src', reader.result)
// .css({
// 'width': newWidth + 'px',
// });
// $('#previewMainImage')
// .attr('src', reader.result)
// .css({
// 'width': newWidth + 'px',
// 'height': newHeight + 'px'
// });
};
reader.readAsDataURL(blob);
})
.catch(error => {
alert("Failed to load image. Check the URL.");
});
}
async function imageUrlToBlobUrl(imageUrl) {
const response = await fetch(imageUrl);
if (!response.ok) {
throw new Error(`Failed to fetch image: ${response.status} ${response.statusText}`);
}
const blob = await response.blob();
const blobUrl = URL.createObjectURL(blob); // ✅ Create a temporary Blob URL
return blobUrl;
}
function revertPreviewImage(){
NEW_EDITOR_ORIGINAL_BASE64_IMG = null;
BEFORE_AFTER_STRING = 'after';
ORIGINAL_IMAGE_BLOB = null;
$('#previewMainImage').attr('src', '');
if(IMAGE_HISTORY.length == 0){
IMAGE_HISTORY_ACTIVATE_AG_ID = null;
$('#imageUploadSection').css('display', 'none');
$('#drag-drop-more-then-one').css('display', '');
$('#imageEditorSidePanel li').not(':first').remove();
}else{
var lastImageObj = IMAGE_HISTORY[IMAGE_HISTORY.length - 1];
$('#sidePanelImage_' + IMAGE_HISTORY_ACTIVATE_AG_ID_TEMP).remove();
IMAGE_HISTORY_ACTIVATE_AG_ID = lastImageObj.id;
$('#sidePanelImage_' + IMAGE_HISTORY_ACTIVATE_AG_ID).find('button').click()
manageBeforeAfterImage('after');
// $('#previewMainImage').attr('src', lastImageObj.res.preview_size_output_image);
// downloadDropdownItemsManger(IMAGE_HISTORY_ACTIVATE_AG_ID)
// editDropdownItemsManger(IMAGE_HISTORY_ACTIVATE_AG_ID)
// editLikeDislikeManger(IMAGE_HISTORY_ACTIVATE_AG_ID)
}
}
function is_file_size_exceed(file) {
const fsize = file.size
if (fsize > 16 * 1000000) {
alert('Max file size 16MB allowed.');
return true;
}
return false;
}
function uploadImageFormatCheck(image_name){
var ext = image_name.split('.').pop().toLowerCase();
if($.inArray(ext, ['jpg', 'jpeg', 'png', 'webp']) == -1) {
return false;
}else{
return true;
}
}