从本地磁盘加载图像
Load images from local disk
我目前通过 electron-vue 样板开始使用 electron。
我的目标是在应用程序(渲染器进程)中显示给定文件夹中的所有图像。
<template>
<div>
<button @click="selectSourceDir()">Quellverzeichnis</button>
Aktuell: {{sourcePath}}
<button @click="scan()">Aktualisieren</button>
<ul>
<li v-for="image in images">
<!--<img v-bind:src="'data:image/jpg;base64,' + image.base64">-->
<img v-bind:src="'file://' + image.path">
</li>
</ul>
</div>
</template>
<script>
import ImageFile from './ImageDispatchPage/ImageFile';
import fs from 'fs';
import { ipcRenderer as ipc } from 'electron';
import path from 'path';
export default {
name: 'image-dispatch-page',
components: { ImageFile },
data () {
return{
images: [],
sourcePath: null,
}
},
methods: {
scan(){
// If path is not set do nothing
if(!this.sourcePath){
return;
}
// Iterate over all files in directory
let files = fs.readdirSync(this.sourcePath);
const regex = /.jpe?g$/gmi;
for (let file of files){
// Ignore non jpg files
if(!file.match(regex)){
continue;
}
let image = {};
image.name = file;
image.path = path.join(this.sourcePath, file);
image.base64 = new Buffer(fs.readFileSync(image.path)).toString('base64');
this.images.push(image);
}
},
selectSourceDir(){
ipc.send('open-directory-dialog');
ipc.on('selected-directory', (event, directory) => {
this.sourcePath = directory;
});
}
},
created(){
this.scan();
}
}
</script>
<style scoped>
</style>
运行 此代码导致以下错误消息:
如果我将注释掉的行与非常非常慢的 base64 编码图像一起使用,则一切正常(第 8 行)。
简单显示这些图像的正确解决方案是什么?
在我的主进程中关闭网络安全就成功了。
mainWindow = new BrowserWindow({
height: 563,
useContentSize: true,
width: 1000,
webPreferences: {
webSecurity: false
}
});
我目前通过 electron-vue 样板开始使用 electron。
我的目标是在应用程序(渲染器进程)中显示给定文件夹中的所有图像。
<template>
<div>
<button @click="selectSourceDir()">Quellverzeichnis</button>
Aktuell: {{sourcePath}}
<button @click="scan()">Aktualisieren</button>
<ul>
<li v-for="image in images">
<!--<img v-bind:src="'data:image/jpg;base64,' + image.base64">-->
<img v-bind:src="'file://' + image.path">
</li>
</ul>
</div>
</template>
<script>
import ImageFile from './ImageDispatchPage/ImageFile';
import fs from 'fs';
import { ipcRenderer as ipc } from 'electron';
import path from 'path';
export default {
name: 'image-dispatch-page',
components: { ImageFile },
data () {
return{
images: [],
sourcePath: null,
}
},
methods: {
scan(){
// If path is not set do nothing
if(!this.sourcePath){
return;
}
// Iterate over all files in directory
let files = fs.readdirSync(this.sourcePath);
const regex = /.jpe?g$/gmi;
for (let file of files){
// Ignore non jpg files
if(!file.match(regex)){
continue;
}
let image = {};
image.name = file;
image.path = path.join(this.sourcePath, file);
image.base64 = new Buffer(fs.readFileSync(image.path)).toString('base64');
this.images.push(image);
}
},
selectSourceDir(){
ipc.send('open-directory-dialog');
ipc.on('selected-directory', (event, directory) => {
this.sourcePath = directory;
});
}
},
created(){
this.scan();
}
}
</script>
<style scoped>
</style>
运行 此代码导致以下错误消息:
简单显示这些图像的正确解决方案是什么?
在我的主进程中关闭网络安全就成功了。
mainWindow = new BrowserWindow({
height: 563,
useContentSize: true,
width: 1000,
webPreferences: {
webSecurity: false
}
});