Overview:
This simple button allows you to select files with the same dimensions as the currently selected file (images, videos and any other files that contain width and height).
How to use?
- Select a file
- Сlick "Select Similar Dimensions" button
All files with the same dimensions and extension will be selected. If you want to select files with the same dimensions but different extensions - hold "Shift" while click on "Select Similar Dimensions" button.
The button:
Script code:
The script inside the .dcf file above is reproduced here for reference:
Modifiers:
@disablenosel
Script:
function OnClick(ClickData) {
SelectedFiles = new Enumerator(ClickData.Func.Sourcetab.selected_files);
if (SelectedFiles.item() != null && SelectedFiles.item().Metadata.image.picwidth != null && SelectedFiles.item().Metadata.image.picheight != null) {
PicWidth = SelectedFiles.item().Metadata.image.picwidth;
PicHeight = SelectedFiles.item().Metadata.image.picheight;
FileExt = SelectedFiles.item().ext.toLowerCase();
EnumFiles = new Enumerator(ClickData.Func.Sourcetab.files);
EnumFiles.moveFirst();
SimilarDimensions = null;
var FileCount = 1;
Cmd = ClickData.Func.Command;
Cmd.Progress.abort = true;
Cmd.Progress.pause = true;
Cmd.Progress.owned = true;
Cmd.Progress.delay = true;
Cmd.Progress.Init();
Cmd.Progress.SetTitle("Select Similar Dimensions");
Cmd.Progress.SetStatus("Total files selected: " + FileCount);
Cmd.Progress.Show();
while (EnumFiles.atEnd() == false && (Cmd.Progress.GetAbortState != "a" || Cmd.Progress.GetAbortState == "p")) {
Cmd.Progress.SetName(EnumFiles.item().name);
if (EnumFiles.item().Metadata.image != null) {
if (ClickData.Func.qualifiers == "shift") {
FileExt = EnumFiles.item().ext.toLowerCase();
}
if (EnumFiles.item().Metadata.image.picwidth == PicWidth && EnumFiles.item().Metadata.image.picheight == PicHeight && EnumFiles.item().ext.toLowerCase() == FileExt) {
SimilarDimensions = EnumFiles.item();
if (SimilarDimensions != null) {
Cmd.ClearFiles();
Cmd.AddFile(SimilarDimensions);
Cmd.RunCommand("Select FROMSCRIPT MAKEVISIBLE");
Cmd.Progress.SetStatus("Total files selected: " + FileCount);
Cmd.Progress.StepFiles();
FileCount++;
}
}
}
EnumFiles.moveNext();
}
Cmd.Progress.Hide();
}
}