// Cambiar tamaño de imagen // (c) 2024 DASOTA // Script para Directory Opus function OnInit(initData) { initData.name = "Resize Image Viewer"; initData.version = "1.0"; initData.copyright = "(c) 2024 DASOTA"; initData.desc = "Cambiar tamaño de imagen"; initData.default_enable = true; initData.min_version = "13.0"; } function OnAddCommands(addCmdData) { var cmd = addCmdData.AddCommand(); cmd.name = "ResizeImageViewer"; cmd.method = "Onresize"; cmd.desc = "Cambiar tamaño de imagen"; cmd.label = "Resize Image Viewer"; cmd.template = "resize"; cmd.hide = false; cmd.icon = "script"; } function Onresize(scriptCmdData) { var viewer = DOpus.viewers.lastactive; var item = viewer.current; var cmd = scriptCmdData.func.command; var dlg = scriptCmdData.func.Dlg(); dlg.title = "Resize Image Viewer - Directory Opus"; dlg.template = 'resize'; dlg.detach = true; dlg.Create dlg.Control("ancho").value = item.metadata.image.picwidth; dlg.Control("alto").value = item.metadata.image.picheight; dlg.Control("predeterminados").SelectItem(4); dlg.Show while (true) { msg = dlg.GetMsg(); if (!msg.result) break; if (dlg.Control("mantener_relacion").value) { var relacion = "PRESERVEASPECTRATIO"; } else { var relacion = ""; } var sayGoodBye = false; if (msg.event == "click") { switch (msg.control) { case "btn_pixeles": dlg.Control("ancho_t").enabled = true; dlg.Control("ancho").enabled = true; dlg.Control("alto_t").enabled = true; dlg.Control("alto").enabled = true; dlg.Control("mantener_relacion").enabled = true; dlg.Control("btn_50%").enabled = true; dlg.Control("btn_75%").enabled = true; dlg.Control("btn_150%").enabled = true; dlg.Control("btn_200%").enabled = true; dlg.Control("predeterminados").enabled = false; dlg.Control("ancho").value = item.metadata.image.picwidth; dlg.Control("alto").value = item.metadata.image.picheight; break; case "btn_porciento": dlg.Control("ancho_t").enabled = true; dlg.Control("ancho").enabled = true; dlg.Control("alto_t").enabled = true; dlg.Control("alto").enabled = true; dlg.Control("mantener_relacion").enabled = true; dlg.Control("btn_50%").enabled = true; dlg.Control("btn_75%").enabled = true; dlg.Control("btn_150%").enabled = true; dlg.Control("btn_200%").enabled = true; dlg.Control("predeterminados").enabled = false; dlg.Control("ancho").value = 100; dlg.Control("alto").value = 100; break; case "btn_predeterminados": dlg.Control("predeterminados").enabled = true; dlg.Control("ancho_t").enabled = false; dlg.Control("ancho").enabled = false; dlg.Control("alto_t").enabled = false; dlg.Control("alto").enabled = false; dlg.Control("mantener_relacion").enabled = false; dlg.Control("btn_50%").enabled = false; dlg.Control("btn_75%").enabled = false; dlg.Control("btn_150%").enabled = false; dlg.Control("btn_200%").enabled = false; var ancho_array = [320, 640, 800, 1024, 1280, 1920, 3840, 5120]; var alto_array = [240, 480, 600, 768, 720, 1080, 2160, 2880]; dlg.Control("ancho_final").value = ancho_array[dlg.Control("predeterminados").value]; dlg.Control("alto_final").value = alto_array[dlg.Control("predeterminados").value]; break; case "btn_50%": dlg.Control("ancho").value = (dlg.Control("ancho").value / 2).toFixed(); dlg.Control("alto").value = (dlg.Control("alto").value / 2).toFixed(); break; case "btn_75%": dlg.Control("ancho").value = (dlg.Control("ancho").value * 0.75).toFixed(); dlg.Control("alto").value = (dlg.Control("alto").value * 0.75).toFixed(); break; case "btn_150%": dlg.Control("ancho").value = (dlg.Control("ancho").value * 1.5).toFixed(); dlg.Control("alto").value = (dlg.Control("alto").value * 1.5).toFixed(); break; case "btn_200%": dlg.Control("ancho").value = dlg.Control("ancho").value * 2; dlg.Control("alto").value = dlg.Control("alto").value * 2; break; case "btn_guardar": cmd.RunCommand('Image WIDTH="' + dlg.Control("ancho_final").value + '" HEIGHT="' + dlg.Control("alto_final").value + '" "' + relacion + '" HERE REPLACE'); cmd.RunCommand('Show VIEWERCMD=refresh'); //DOpus.Output("SALIDA: Nombre: " + dlg.Control("nombre_final").value + " Comentario: " + dlg.Control("comentario_final").value + " Tamaño: " + dlg.Control("ancho_final").value + " x " + dlg.Control("alto_final").value) sayGoodBye = true; break; } } else if (msg.event == "editchange") { switch (msg.control) { case "ancho": dlg.Control("ancho_final").value = dlg.Control("ancho").value; if (relacion && dlg.Control("ancho").focus) { newalto = Math.round(dlg.Control("ancho").value / item.metadata.image.aspectratio); dlg.Control("alto").value = newalto; dlg.Control("alto_final").value = newalto; } if (dlg.Control("btn_pixeles").value) { dlg.Control("ancho_final").value = dlg.Control("ancho").value; } if (dlg.Control("btn_porciento").value) { dlg.Control("ancho_final").value = (item.metadata.image.picwidth * dlg.Control("ancho").value / 100).toFixed(); } break; case "alto": dlg.Control("alto_final").value = dlg.Control("alto").value; if (relacion && dlg.Control("alto").focus) { newancho = Math.round(dlg.Control("alto").value * item.metadata.image.aspectratio); dlg.Control("ancho").value = newancho; dlg.Control("ancho_final").value = newancho; } if (dlg.Control("btn_pixeles").value) { dlg.Control("alto_final").value = dlg.Control("alto").value; } if (dlg.Control("btn_porciento").value) { dlg.Control("alto_final").value = (item.metadata.image.picheight * dlg.Control("alto").value / 100).toFixed(); } break; case "nombre": dlg.Control("nombre_final").value = dlg.Control("nombre").value; break; case "comentario": dlg.Control("comentario_final").value = dlg.Control("comentario").value; break; } } else if (msg.event == "selchange" && msg.control == "predeterminados") { dlg.Control("ancho_final").value = ancho_array[dlg.Control("predeterminados").value] dlg.Control("alto_final").value = alto_array[dlg.Control("predeterminados").value] } //DOpus.Output("Evento: " + msg.event + ", Control: " + msg.control) if (sayGoodBye) break; } } ==SCRIPT RESOURCES