标签: filereader

FileReader readAsDataURL 创建大型 base64 图像

我需要将输入图像(blob)转换为 base64 图像。我知道尺寸会增加大约 1.37。

然而,我注意到,firereader.readAsDataUrl与 macOS 上内置的 base64 命令行工具相比,使用图像的尺寸非常大。

https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsDataURL

重现步骤:

  1. 下载此免费示例图像https://wall.alphacoders.com/big.php?i=685897请务必单击“下载”按钮(下载原始 8000x600)。不要使用右键另存为,因为图像会被压缩

  2. 使用 jsfiddle 选择上面下载的镜像,并检查控制台日志中是否有 64 进制的大小。https://jsfiddle.net/b7nkw8j9/可以看到大小为11.2mb

  3. 现在,如果您在 Mac 上使用 Base64 命令行工具将上面下载的图像转换为 Base64 并检查文件大小。您将在这里看到 base64 大小。5.9MBbase64 -w 0 downloaded_image.jpg > downloaded_image.base64

这是我在代码中使用的将输入文件图像转换为 Base64 的函数。

async convertToBase64(file) {

  if (file === undefined) {
    throw new Error("File could not be found");
  }

  const fileReader = new FileReader();

  return new Promise((resolve, reject) => {
    fileReader.readAsDataURL(file);

    fileReader.onerror = (error) => {
      reject("Input: …
Run Code Online (Sandbox Code Playgroud)

javascript base64 filereader

1
推荐指数
1
解决办法
7512
查看次数

通过 for 循环创建嵌套字典

我在使用 for 循环在另一个字典中创建具有多个键和值的字典时遇到问题。

我有一个程序可以读取另一个文本文件,然后将其信息输入到字典中。该文件看起来像这样:

GPU;GeForce GTX 1070 Ti;430
CPU;AMD Ryzen 7 2700X;233
GPU;GeForce GTX 2060;400
CPU;Intel Core i7-11700;360
RAM;HyperX 16GB;180
PSU;Corsair RM850X;210
Run Code Online (Sandbox Code Playgroud)

我想要实现的是,我尝试为每个组件类型 {GPU、CPU、RAM、PSU 等} 创建一个字典,并尝试输入另一个字典,该字典由多个键组成以及值为 {name1 :price1, name2 :price2, etc.} 运行程序后,完整的字典应如下所示:

"GPU": {"GeForce GTX 1070 Ti": 430, "GeForce GTX 2060 2": 233},
"CPU": {"AMD Ryzen 7 2700X": 233, "Intel Core i7-11700 : 360},
"RAM": {"HyperX 16GB": 180},
"PSU": {"Corsair RM850X": 210}
Run Code Online (Sandbox Code Playgroud)

但相反,它看起来像这样:

"GPU": {"GeForce GTX 2060 2": 233},
"CPU": {"Intel Core i7-11700 : 360},
"RAM": {"HyperX 16GB": 180},
"PSU": …
Run Code Online (Sandbox Code Playgroud)

python dictionary nested filereader data-structures

1
推荐指数
1
解决办法
2万
查看次数

如何使用 Rust Image crate 避免“内存不足”解码错误?

我正在尝试使用 Rust 读取 8K 32 位 OpenEXR HDR 文件。使用 Image crate 读取文件:

use image::io::Reader as ImageReader;

let img = ImageReader::open(r"C:\Users\Marko\Desktop\HDR_Big.exr")
    .expect("File Error")
    .decode()
    .expect("Decode ERROR");
Run Code Online (Sandbox Code Playgroud)

这导致Decode ERROR: Limits(LimitError { kind: InsufficientMemory })

读取 4K 或更小的文件效果很好。

我认为缓冲会有所帮助,所以我尝试了:

use image::io::Reader as ImageReader;
use std::io::BufReader;
use std::fs::File;

let f = File::open(r"C:\Users\Marko\Desktop\HDR_Big.exr").expect("File Error");
let reader = BufReader::new(f);
let img_reader = ImageReader::new(reader)
    .with_guessed_format()
    .expect("Reader Error");
let img = img_reader.decode().expect("Decode ERROR");
Run Code Online (Sandbox Code Playgroud)

但结果是同样的错误。 这是图像箱本身的问题吗?可以避免吗?

如果解码图像后对解决方案有任何影响,我将使用如下原始数据:

let data: Vec<f32> = img.to_rgb32f().into_raw();
Run Code Online (Sandbox Code Playgroud)

谢谢!

image filereader rust

1
推荐指数
1
解决办法
522
查看次数

如何将文本文件中的行复制到JComboBox中?

我正在尝试将文本文件的每一行复制到jcomboBox中,但它只显示jcomboBox中文本文件的第一行...我不明白为什么.你能解释一下我有什么问题吗?

(...)
BufferedReader in;
    String read;

        try {
            in = new BufferedReader(new FileReader("D:/File.txt"));


            read = in.readLine();

            lines[w]=read;

             ++w;

            in.close();
        }catch(IOException e){
            System.out.println("There was a problem:" + e);
        }

    combo1 = new JComboBox(lines);

    combo1.setPreferredSize(new Dimension(100,20));
    combo1.setForeground(Color.blue);


    JPanel top = new JPanel();
    top.add(label);
    top.add(combo1);

    combo1.addActionListener(new ActionFichiers());

    container.add(top, BorderLayout.NORTH);
    this.setContentPane(container);
    this.setVisible(true);            
    }
(...)
Run Code Online (Sandbox Code Playgroud)

java swing filereader jcombobox

0
推荐指数
1
解决办法
909
查看次数

JavaScript FileReader使用了大量内存

我的小项目有问题.每当音乐播放器将新歌曲加载到播放列表中,或者您正在按下列表中的一首歌曲来播放它时,它会占用大量内存,并且在您将其关闭之前一直保持高位.我认为每次我使用文件读取器API它都使用内存,但我也在使用jDataView.js脚本加载ID3信息,我也认为它占用了大量内存.

你们有没有任何建议,加载,存储和播放歌曲FileReader,而不占用内存?我试过看看是否可以在使用后清除fileReader,但我找不到任何东西.我只在Chrome中测试过.

更新:我已经测试了我的项目,并发现,当我试图加载数据串时它占用了内存.

reader.onloadend = function(evt) {
    if(typeof(e) != "undefined"){
        e.pause();
    }
    e = new Audio();
    e.src = evt.target.result; // evt.target.result call takes the memory
    e.setAttribute("type", songs[index]["file"].type);
    e.play();
    e.addEventListener("ended", function() { LoadAudioFile(index + 1) }, false);
};
Run Code Online (Sandbox Code Playgroud)

是否有另一种方法将数据加载到音频元素?

javascript html5 filereader

0
推荐指数
1
解决办法
2120
查看次数

如何在c#中指定的行后读取文本文件

我有一个巨大的文本文件,我需要阅读.目前我正在阅读这样的文本文件..

string[] lines = File.ReadAllLines(FileToCopy);
Run Code Online (Sandbox Code Playgroud)

但是这里所有的行都被存储在行数组中,然后根据条件正在编程处理,这是没有效率的方式,因为它首先将文本文件的不相关的行(行)读成数组,同样的方式将去用于处理.所以我的问题是我可以把行号从文本文件中读取.假设上次读取10001行,下次应该从10002开始.如何实现呢?

c# file-handling text-files filereader

0
推荐指数
1
解决办法
3772
查看次数

System.IO网络性能问题

我在网络上迭代一个大目录(500 GB),我需要从root和子目录中迭代所有文件,这是我的示例代码

    static void WalkDirectoryTree(DirectoryInfo root, DbContext dbcontext)
    {
                FileInfo[] files = null;
                DirectoryInfo[] subDirs = null;

                try
                {
                    Console.WriteLine(DateTime.Now + " Listing files...");
                    files = root.GetFiles("*.*");
                    Console.WriteLine(DateTime.Now + " Files obtained.");
                }
                catch (UnauthorizedAccessException e)
                {

                }

                catch (System.IO.DirectoryNotFoundException e)
                {
                    Debug.Print(e.Message);
                }

                if (files != null)
                {
                    Console.WriteLine(DateTime.Now + " Iterating files...");
                    foreach (System.IO.FileInfo fi in files)
                    {

                        Console.WriteLine(DateTime.Now + " Indexing [" + fi.FullName + "]...");
                        doIndex(IndexData index = new IndexData();

                        index.attachementUID = fi.Name;
                        dbcontext.IndexDatas.Add(index);

                    }
                    Console.WriteLine(DateTime.Now …
Run Code Online (Sandbox Code Playgroud)

.net c# filereader

0
推荐指数
1
解决办法
144
查看次数

java文件阅读器奇怪的输出

我设置了一个FileReader,并打开了一个文件来读取,但它给了我一个奇怪的输出,我似乎无法解决:

import java.io.BufferedReader;
import java.io.FileReader;

public class FileReading {
    public static void main(String [] args) throws Exception {

    FileReader file = new FileReader("/Users/danielpersonius/Desktop/test.rtf");

    BufferedReader reader = new BufferedReader(file);

    String text = "";
    String line = reader.readLine();

    while (line != null){
        // So here, we want to print until it reaches 'null'
        text += line;
        line = reader.readLine();
    }

    System.out.println(text);
}
}
Run Code Online (Sandbox Code Playgroud)

这是我的输出:

{\ rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf200 {\ fonttbl\f0\fswiss\fcharset0 Helvetica;} {\ colortbl;\red255\green255\blue255;}\margl1440\margr1440\vieww10800\viewh8400\viewkind0\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\f0\fs24\cf0 TEST}

TEST是rtf文件所说的,但是如何摆脱我显然不想要的所有其他东西呢?我是OS X Mavericks的IMac

java filereader

0
推荐指数
1
解决办法
773
查看次数

Java BufferedReader到String数组

我在stackoverflow上查看了很多不同的主题,但到目前为止找不到任何有用的东西:/

所以这是我的问题.我正在写一个文件复制者.在读取文件时已发生此问题.我的测试文档有3行随机文本.所有这三行都应该用字符串数组写出来.问题是只有textdocument的第二行被写入数组,我无法弄清楚原因.已经调试过,但没有让我更进一步.

我知道有一个不同的解决方案,文件复制程序有不同的类等.但我真的想让它与我在这里使用的类一起运行.

    String[] array = new String[5];
    String datei = "test.txt";
    public String[] readfile() throws FileNotFoundException {
    FileReader fr = new FileReader(datei);
    BufferedReader bf = new BufferedReader(fr);
    try {
        int i=0;
        //String  Zeile = bf.readLine();
        while(bf.readLine() != null){
            array[i] = bf.readLine();
        //  System.out.println(array[i]);  This line is for testing
            i++;
        }
        bf.close();

    } catch (IOException e) {
        e.printStackTrace();
    }
    return array;
Run Code Online (Sandbox Code Playgroud)

java arrays while-loop filereader filewriter

0
推荐指数
1
解决办法
3万
查看次数

如何使用Javascript和HTML 5按名称加载本地文本文件的内容?

在Chrome中工作,加载本地 html或JS文件.

我找到了许多如何加载使用"选择文件"输入选择的文件的示例.

但是,如果不使用"选择文件"输入,则无法确定如何在给定文件名的情况下执行此操作.

"选择文件"输入返回File对象.

如何在没有选择文件输入的情况下创建File对象?

File API:

new File(
  Array parts,
  String filename, 
  BlobPropertyBag properties
);
Run Code Online (Sandbox Code Playgroud)

但没有弄清楚零件和属性是什么.

编辑:用例:

我将代码覆盖率结果作为测试套件的一部分生成.它存储为JSON(易于阅读),但我需要用源代码显示它.

因此,该功能是加载源代码和JSON数据,并使用HTML和Javascript在网页上将它们一起呈现.

该文件将从浏览器打开并存在于本地计算机上.没有服务器.

javascript html5 file filereader fileapi

0
推荐指数
1
解决办法
5258
查看次数