Как я могу скопировать файл изображения в node / electron и иметь возможность вставить его в виде файла в другой каталог в Windows?

#javascript #node.js #powershell #cmd #electron

#javascript #node.js #powershell #cmd #electron

Вопрос:

Я создал приложение для просмотра изображений с использованием electron js для Windows 10. Я могу добавлять просмотренные изображения в буфер обмена с помощью clipboard.writeImage. Однако, используя это, я могу вставлять только в word и другие приложения для редактирования. Я хотел бы также иметь возможность вставлять свое изображение в виде файла, чтобы его можно было копировать в папки. Есть ли способ сделать это в nodejs? Я также не возражаю, если команда задана в powershell или cmd, поскольку я могу вызвать любой из них из nodejs. Большое спасибо

Ответ №1:

Если вы сохраняете изображения во (временные) файлы, вы можете копировать ссылки на эти файлы в буфер обмена с помощью
Set-Clipboard -LiteralPath .

Ответ №2:

В Powershell это может выглядеть примерно так:

 $Image = Get-Clipboard -Format Image
$ImageFile = 'C:scriptstestimage.jpg'
$Image.Save($ImageFile,'Jpeg')
  

Более подробную информацию о том, что вы можете сделать с $Image после того, как вы его захватили, можно найти здесь: Класс Image и поддерживаемые форматы можно найти здесь: Класс ImageFormat

Комментарии:

1. Привет, я получаю сообщение об ошибке при попытке это сделать: Вы не можете вызвать метод для выражения с нулевым значением. В строке: 3 символа: 1 $Image. Сохранить ($ImageFile,’Jpeg’); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CategoryInfo : недопустимая операция: (:) [], исключение RuntimeException FullyQualifiedErrorId : InvokeMethodOnNull

2. Вы уверены, что у вас было изображение в вашем буфере обмена? Эта ошибка возникает, когда $Image пуст. Добавьте строку между вторым и третьим с помощью just $Image , и вы должны увидеть информацию об изображении, если нет вывода, первая строка не удалась. Что случилось со мной только тогда, когда в буфере обмена не было изображения.

3. Я думаю , что приложение @daibatzu намерено копировать изображения в виде ссылок на файлы в буфер обмена, чтобы пользователи могли позже вставлять эти файлы в папки. Дайбатзу, не могли бы вы уточнить (пожалуйста, обновите свой вопрос напрямую)?

4. да, mklement0, это то, что я хочу. Это настольное приложение для просмотра изображений. Пользователи должны иметь возможность нажимать кнопку копировать на изображении и вставлять его, когда захотят, в окно проводника. Спасибо

5. @daibatzu Ах, тогда у вас должен быть установлен ответ mklement0, и если вам нужно перейти от «image-in-clipboard» к «file-in-clipboard», вы можете просто объединить наши ответы (могут потребоваться некоторые незначительные изменения).