首页 \ 问答 \ 是否可以在C#中快速加载和编码图像到base64?(Is it possible to load and encode images to base64 fast in C#?)

是否可以在C#中快速加载和编码图像到base64?(Is it possible to load and encode images to base64 fast in C#?)

我想加载一个图像并直接将其编码为base64字符串。 小/低分辨率图片加载速度很快,但加载iPhone 5拍摄的照片(例如2448 x 3264,2.61 MB)需要很长时间。 有没有办法在我的应用程序中更快地加载这些图像?

这是我的C#代码:

private void button1_Click(object sender, EventArgs e)
    {
        Stream myStream = null;
        OpenFileDialog openFileDialog1 = new OpenFileDialog();
        //Setup OpenFileDialog

        if (openFileDialog1.ShowDialog() == DialogResult.OK)
        {
            if ((myStream = openFileDialog1.OpenFile()) != null)
            {
                using (myStream)
                {
                    string sFileName = openFileDialog1.FileName;
                    textBox1.Text = sFileName;
                    pictureBox1.ImageLocation = sFileName;
                    using (Bitmap bm = new Bitmap(sFileName))
                    {
                        using (var ms = new MemoryStream())
                        {
                            bm.Save(ms, ImageFormat.Jpeg);
                            base64 = Convert.ToBase64String(ms.ToArray());
                            textBox3.Text = base64;
                        }
                    }
                }
            }
        }
    }

I want to load an image and directly encode this to a base64 string. Small/low-res pictures load fast but loading a picture taken by an iPhone 5 for example (2448 x 3264, 2.61 MB) takes ages. Is there a way to load these images faster in my application?

Here is my C# code:

private void button1_Click(object sender, EventArgs e)
    {
        Stream myStream = null;
        OpenFileDialog openFileDialog1 = new OpenFileDialog();
        //Setup OpenFileDialog

        if (openFileDialog1.ShowDialog() == DialogResult.OK)
        {
            if ((myStream = openFileDialog1.OpenFile()) != null)
            {
                using (myStream)
                {
                    string sFileName = openFileDialog1.FileName;
                    textBox1.Text = sFileName;
                    pictureBox1.ImageLocation = sFileName;
                    using (Bitmap bm = new Bitmap(sFileName))
                    {
                        using (var ms = new MemoryStream())
                        {
                            bm.Save(ms, ImageFormat.Jpeg);
                            base64 = Convert.ToBase64String(ms.ToArray());
                            textBox3.Text = base64;
                        }
                    }
                }
            }
        }
    }

原文:https://stackoverflow.com/questions/37990239
更新时间:2022-06-26 08:06

最满意答案

告诉你想要什么有点难,但也许这样做:

SELECT *
from   md_number_ranges m
join (
   SELECT md_number_ranges.id
        , count(*) as FOUND_ROWS
   FROM   md_number_list
   JOIN   md_number_ranges
     ON   md_number_list.range_id = md_number_ranges.id
   WHERE md_number_list.phone_num_status NOT IN  (2, 0)
     AND md_number_ranges.reseller_id=1
   GROUP BY range_id
   ) x
on x.id=m.id
LIMIT 10
OFFSET 0

It's a bit hard to tell what you want, but perhaps this will do:

SELECT *
from   md_number_ranges m
join (
   SELECT md_number_ranges.id
        , count(*) as FOUND_ROWS
   FROM   md_number_list
   JOIN   md_number_ranges
     ON   md_number_list.range_id = md_number_ranges.id
   WHERE md_number_list.phone_num_status NOT IN  (2, 0)
     AND md_number_ranges.reseller_id=1
   GROUP BY range_id
   ) x
on x.id=m.id
LIMIT 10
OFFSET 0

相关问答

更多

相关文章

更多

最新问答

更多
  • 使用通配符获取更多servlet请求变量[重复](Get more servlet request variables using wildcards [duplicate])
  • 返回相同的集合类型,参数化不同(Returning same collection type, differently parameterised)
  • C ++朋友函数模板重载和SFINAE在clang ++,g ++,vc ++中的不同行为(C ++ 14模式)(C++ friend function template overloading and SFINAE different behaviors in clang++, g++, vc++ (C++14 mode))
  • 与paure IoT-Hub的Python paho-MQTT连接(Python paho-MQTT connection with azure IoT-Hub)
  • 编译器警告“来自不同的Objective-C类型的赋值”(Compiler warning “assignment from distinct objective-c type”)
  • C ++编译错误(在此函数中未初始化)[重复](C++ Compile Error (uninitialized in this function) [duplicate])
  • unsigned-signed下溢机制(unsigned-signed underflow mechanism)
  • 快速行查询的数据结构?(Data structure for fast line queries?)
  • 饥荒有手机安卓版的吗
  • Jquery可拖动碰撞检测错误(Jquery draggable collision detection bug)
  • sql调优是怎样来实现的?
  • 无法使占位符输入文本消失(Unable to make the placeholder input text disappear)
  • jQuery改变了两个div的CSS属性(JQuery change CSS property of two div's)
  • JDK中包含的库版本(Versions of libraries included in the JDK)
  • 请问下载的是出现ASP是什么意思
  • Firebase MLkit用于数字液晶显示器的文本识别(Firebase MLkit Text recognition for digital lcd displays)
  • 我可以在任何平台上运行C和C ++吗?(Can I run C and C++ on any platform?)
  • 让小组在C#的特定位置(get panel at specific positions in C#)
  • Nagios为通知设置了更高的间隔(Nagios set higher interval for notifications)
  • 无法向SMTP主机发送电子邮件(unable to send an email to SMTP host)
  • 获取MVC 4使用的DisplayMode后缀(Get the DisplayMode Suffix being used by MVC 4)
  • 如何在.NET代码中验证全球邮政编码(How can I validate worldwide postal codes in my .NET code)
  • 如何通过引用返回对象?(How is returning an object by reference possible?)
  • Clojure:减少大型懒惰收集会占用内存(Clojure: Reducing large lazy collection eats up memory)
  • 矩阵如何存储在内存中?(How are matrices stored in memory?)
  • 每个请求的Java新会话?(Java New Session For Each Request?)
  • 显示作为字符串的SVG(Showing an SVG that I have as a string)
  • 从jansson库里创建json请求的自由内存的正确方式是什么?(what is the proper way of free memory in creating json request from jansson libary?)
  • jQuery插件无法正常工作 - 它是附加的(jQuery plugin not working - it's appended)
  • 使用stat_summary自动调整ylim(Automatically adjusting ylim with stat_summary)