Здравствуйте, гость ( Вход | Регистрация )

> размер фото, определённый размер фото
portos
сообщение 2.9.2020, 23:35
Сообщение #1


****

Apprentice
Сообщений: 195
Регистрация: 6.12.2014
Группа: Пользователи
Наличность: 0
Пользователь №: 17.157



есть скрипт

script
Код
set $path1 "D:\3"  // папка, в которой папки с картинками
set $path2 "D:\2"

dir (%result $path2)     // найти все файлы в папке
for #i 1 size(%result)
    filedelete (%result[#i 1])    // удалить
end_for

dir (%result2 $path1 "*.*" norecursion)   // найти все папки

set $path3 %result2 [1 1]
dir (%result3 $path3)     // найти все файлы в папке

set %a[1 1] $path1
set %a[1 2] "\"
set %a[1 3] %result2[1 3]
set %a[1 4] "\"
set %a[1 5] %result3[1 3]%result3[1 4]

set %a[2 1] $path2
set %a[2 2] "\"
set %a[2 3] %result3[1 3] %result3[1 4]

set $s1 %a[1]
set $s2 %a[2]

filecopy ($s1 $s2)      // скопировать файл
filedelete (%result3[1 1])  // удалить файл
if  size(%result3) = 1 or size(%result3) = 0  // если в папке был 1 файл или папка пустая, то удалить папку
    init_arr %a (3) $path1 \ %result2[1 3]
    DirRemove (%a[3])  // удалить папку
end_if

можно ли сделать так ,чтобы брало фото опредедёного размера (от 100 например),а потом удаляло папку

---
См. правило 1.18


Сообщение отредактировал Fors1k - 3.9.2020, 1:43
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
cirus
сообщение 3.9.2020, 14:57
Сообщение #2


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26715
Пользователь №: 16.971
Возраст: 29



Цитата
в папке D\3 находятся папки с фото,нужно оставить только файлы jpg которые больше 100х100 пикс

код
Код
--lua
local ffi = require('ffi')
local gdip = ffi.load('Gdiplus.dll')
local CP_ACP = 0

ffi.cdef[[
typedef unsigned int  UINT;
typedef unsigned long DWORD;
typedef struct {UINT GdiplusVersion; int DebugEventCallback; bool SuppressBackgroundThread; bool SuppressExternalCodecs;} GdiplusStartupInput, *pGdiplusStartupInput;

bool DeleteFileA(const char *lpFileName);
int GdiplusStartup(int *token, pGdiplusStartupInput GdiplusStartupInput, int *output);
int GdiplusShutdown(int token);
int GdipDisposeImage(int image);
int GdipLoadImageFromFile(const wchar_t *filename, int *image);
int GdipGetImageWidth(int image, UINT *width);
int GdipGetImageHeight(int image, UINT *height);
int MultiByteToWideChar(UINT CodePage, DWORD dwFlags, const char *lpMultiByteStr, int cbMultiByte, wchar_t *lpWideCharStr, int cchWideChar);
]]

function image_size(path)
    local buf = ffi.new('wchar_t[?]', #path+1)
    local StartupInput = ffi.new('GdiplusStartupInput', {1, 0, 0, 0})
    local token, image, w, h = ffi.new('int[1]'), ffi.new('int[1]'), ffi.new('int[1]'), ffi.new('int[1]')
    ffi.C.MultiByteToWideChar(CP_ACP, 0, path, #path, buf, ffi.sizeof(buf))
    gdip.GdiplusStartup(token, StartupInput, nil)
    gdip.GdipLoadImageFromFile(buf, image)
    gdip.GdipGetImageWidth(image[0], w)
    gdip.GdipGetImageHeight(image[0], h)
    gdip.GdipDisposeImage(image[0])
    gdip.GdiplusShutdown(token[0])
    return w[0], h[0]
end

log 'clear' log 'mode compact'

local path = [[D:\3]]      -- путь к папке

local resultarray, count = dir (path, "*.bmp;*.jpg", "norecursion")  -- получить список всех файлов в формате bmp и jpg
log ("Найдено файлов: " .. count)
if count then      -- если файлы найдены
    for i=1, #resultarray do
        local width, height = image_size( resultarray[i][1] )
        log(resultarray[i][1].. '\tШирина: ' .. tostring(width) .. '\t'.. 'Высота: ' .. tostring(height))  -- размеры картинки
        if width < 100 and height < 100 then   -- если ширина и высота меньше 100
            ffi.C.DeleteFileA( resultarray[i][1] )  -- удалить файл
        end
    end
end
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщений в этой теме
portos   размер фото   2.9.2020, 23:35
cirus   Какой формат картинок? 100 чего? Пикселей по шири...   3.9.2020, 1:20
portos   Какой формат картинок? 100 чего? Пикселей по шири...   3.9.2020, 1:45
cirus   Какой формат у картинок?   3.9.2020, 2:07
portos   Какой формат у картинок? jpg ,например : image_...   3.9.2020, 2:09
cirus   --lua local ffi = require('ffi') l...   3.9.2020, 5:16
portos   спасибо за помощь ,но это совсем не то . lua не ис...   3.9.2020, 5:47
Fors1k   а такое возможно на нормальном uopilot ? Нет, поэ...   3.9.2020, 12:46
portos   можно на lua сделать: в папке D\3 находятся ...   3.9.2020, 14:41
Fors1k   в папке D\3 находятся папки с фото нужно ост...   3.9.2020, 23:25
portos   не работает ,пишет - найдено файлов 0 работает есл...   3.9.2020, 20:19
portos   выбивает ошибку Найдено файлов: 42 D:\4...   4.9.2020, 0:27
Fors1k   выбивает ошибку Скачайте здесь архив и распакуйт...   4.9.2020, 0:35
portos   поэтому и не использую lua,много проблем с ним... ...   4.9.2020, 0:44
Fors1k   поэтому и не использую lua,много проблем с ним. ...   4.9.2020, 0:52
portos   нет ,не работает . когда ты 6 лет работаешь с одн...   4.9.2020, 1:00
Fors1k   когда ты 6 лет работаешь с одним языком ,и потом...   4.9.2020, 1:18
cirus   Всего-то надо убрать "norecursion" в di...   4.9.2020, 1:43
portos   так работает супер, спасибо вам за помощь насчёт п...   4.9.2020, 2:09
portos   как изменить скрипт ,что бы в папке оставались тол...   19.12.2020, 3:19
Fors1k   скрипт оставляет фото правильного размера ,но и о...   19.12.2020, 4:00
portos   Этот скрипт оставляет только файлы jpg, которые б...   19.12.2020, 4:11
portos   не работает   19.12.2020, 5:53
cirus   Добавить в конец скрипта: local resultarray, coun...   19.12.2020, 11:01
portos   работает ,огромное спасибо ... С наступающими праз...   19.12.2020, 15:09
portos   подскажите , сделал два скрипта 1. берёт фото с па...   21.12.2020, 20:41
Fors1k   portos, какая разрядность у вашей операционной сис...   21.12.2020, 21:14
portos   portos, какая разрядность у вашей операционной си...   21.12.2020, 21:34


Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 15.7.2025, 16:07
Designed by Nickostyle