【c# – 为什么我在图像的开头有不需要的额外字节?】教程文章相关的互联网学习教程文章

c#-.net 32​​位最大字节数组大小是否小于2gb?【代码】

我一直在研究与字节数组的最大大小(here和here)有关的一些SO问题,并且一直在使用某些数组并获得一些我不太了解的结果.我的代码如下:byte[] myByteArr; byte[] myByteArr2 = new byte[671084476];for (int i = 1; i < 2; i++) {myByteArr = new byte[671084476]; }这将进行编译,并在执行时将在myByteArr的初始化上引发“ System.OutOfMemoryException”.如果将for循环中的2更改为1,或者注释掉其中一个初始化项(myByteArr2或myByteA...

C#字节数组到图像不能与相同的字节数组一起使用【代码】

完整的代码using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO;namespace WindowsFormsApplication1 {public partial class Form1 : Form{public Form1(){InitializeComponent();}//Display byte array as imageprivate void button1_Click(object sender, EventArgs e...

c#-CScore输出PCM大于一个字节【代码】

我正在编写一个C#仿真器,并决定使用CScore输出PCM.当样本大小(每个通道)为一个字节时,声音会正确输出,但是当我将样本大小增加到16位时,声音会非常嘈杂. 与该问题相关的问题是如何解释这两个字节(它们是否带符号?高字节在前?) 这大致就是我在做什么: 首先,我这样生成样本public void GenerateSamples(int sampleCount) {while(sampleCount > 0){--sampleCount;for(int c = 0; c < _numChannels; ++c){_buffer[_sampleIndex++] = ...

首页> C#>如何在Web API控制器中接收字节数组和JSON【代码】

我需要在c#Web API应用程序中接收一个json对象以及一个字节数组. 这就是我发送数据的方式:public bool SendMedia(string method, Media media) {string filePath = Path.GetFullPath(Path.Combine(filesDirectory, media.FileName));if (!File.Exists(filePath)){return false;}using (var client = new HttpClient())using (var content = new MultipartContent() ){content.Add(new StringContent(JsonConvert.SerializeObject(...

c#-直接将字节抽入Response.OutputStream-如何处理字节数?【代码】

我需要从Web服务传输大量数据.我不想增加配置数据库中的IIS缓冲区大小,而是将字节直接泵送到未缓冲的Response.OutputStream中.Response.ClearHeaders(); Response.Clear(); Response.ContentType = "text/xml"; Response.Buffer = false; int len = GetReport(protocolName, sourceName, reportName, pageIndex, pageSize, Response.OutputStream); Response.End();这可以正常工作,但是在检索它们之后我只能知道检索了多少个字节,因...

C#,是否可以将字节*转换为字节[]而无需复制?最快的方法是什么?【代码】

我从套接字连接中有一个大byte [] receiveBuffer,其中包含多个数据包. 我想将单个数据包传递到应用程序的下一层,但是我不想将每个数据包复制到一个新的数组中. 我目前正在做这样的事情fixed (byte* rxBufferPtr = receiveBuffer) {while(more_packets_in_rx_buf){NewPacketReceived(rxBufferPtr + offset, packetSize);// NewPacketReceived params: NewPacketReceived(byte* packet, int size)offset += packetSize;} }我想传递一...

C#字节数组XML序列化【代码】

我有一个字节数组public byte[] values;我用数据填充new byte[64];我对其进行序列化,然后得到以下XML部分:<values> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== </values>我在SO中找到以下解决方案:[XmlElement("values", DataType = "hexBinary")]public byte[] values;现在,我得到的是与上面相同的XML,只是带有“ 0”而不是“ A”. 当我序列化例如一个Int16 / Int32 / sbyte数...

结构大小无法反映C#中的正确字节数【代码】

我的结构定义如下:public struct champ {public uint mem1;public byte[] mem2;public champ(int x){mem1 = x;mem2 = new byte[15];} }创建对象后champ sample = new champ (2);应用Marshal.SizeOf(sample)返回4 4 = 8而不是415.为什么? 如果它是一个类,我可以理解该逻辑,因为第二个成员是一个占用4个字节的指针,该指针指向堆上的字节数组mem2.为什么会在结构上发生这种情况?解决方法:mem2字段没有MarshalAs属性,因此使用默认编...

C#中const字节字段上的按位非【代码】

我意识到,如果我具有“字节”类型的字段或变量,则可以对其应用按位NOT(?)并将其转换为字节.但是,如果该字段是“常量字节”,我仍然可以按位应用NOT(?),但不能将其强制转换为字节.例如, 这样编译:class Program {byte b = 7;void Method(){byte bb = (byte) ~b;} }但这有一个编译错误(“常量值’-8’不能转换为’byte’“):class Program {const byte b = 7;void Method(){byte bb = (byte) ~b;} }我想知道为什么?解决方法:因为?运...

SSE指令检查字节数组是否为零C#【代码】

假设我有一个byte [],想检查所有字节是否为零. For循环是一种显而易见的方法,而LINQ All()是一种理想的方法,但是最高性能至关重要. 如何使用Mono.Simd加快检查字节数组是否为零?我正在寻找最先进的方法,而不仅仅是正确的解决方案.解决方法:最佳代码如下. full source中提供了其他方法和时间测量.static unsafe bool BySimdUnrolled (byte[] data) {fixed (byte* bytes = data) {int len = data.Length;int rem = len % (16 * 16);...

c#-检查字节数组是否仅包含1个值的最快方法【代码】

好吧,现在很明显,我可以检查字节数组是否仅包含1个值,但是我不知道这是否是最快的方法.问题是有时候我会得到一个只有FF(255)值的字节数组,如果发生这种情况,我需要在接下来的代码中忽略它,所以我要做的事情如下:var onlyFF = true; foreach(var value in programCode) {if (value != 0xFF){onlyFF = false;break;} }但这是最快的方法吗?我将不得不检查大量的数组(尽管所有数组都很小(350)) 那么这是最快的方法还是有更好的方法呢...

在C#中将字段声明为一个位(作为一个位,而不是一个字节的倍数)【代码】

C# 6.0 in a Nutshell by Joseph Albahari and Ben Albahari (O’Reilly). Copyright 2016 Joseph Albahari and Ben Albahari, 978-1-491-92706-9.在第312页介绍BitArrays作为.NET提供的集合类型之一:BitArray A BitArray is a dynamically sized collection of compacted bool values.It is more memory-efficient than both a simple array of bool and ageneric List of bool, because it uses only one bit for each value,wh...

将固定和字节*从C#转换为vb.net【代码】

我在c#中具有以下代码,并希望在VB.NET中对其进行转换.我不确定什么是固定和字节*,以及如何转换它们. Telerik转换器在此方面不提供任何帮助.fixed (byte* ptrShapeBufferPtr = pointerInfo.PtrShapeBuffer) {mDeskDupl.GetFramePointerShape(frameInfo.PointerShapeBufferSize, (IntPtr)ptrShapeBufferPtr, out pointerInfo.BufferSize, out pointerInfo.ShapeInfo); }有任何想法吗?解决方法:由于VB.NET不支持指针,因此您必须使用I...

从C#中不受管理的C DLL获取字节数组上的指针【代码】

在C我有这样的功能extern "C" _declspec(dllexport) uint8* bufferOperations(uint8* incoming, int size)我正在尝试像这样从c#调用它[DllImport("MagicLib.DLL", CallingConvention = CallingConvention.Cdecl)] //[return: MarshalAs(UnmanagedType.ByValArray)]//, ArraySubType=UnmanagedType.SysUInt)] public static extern byte[] bufferOperations(byte[] incoming, int size);但是我得到了无法封送“返回值”:无效的托管...

c# – 垂直翻转字节数组中位图的算法【代码】

我正在通过Mono For Android为Android中的便携式蓝牙打印机编写一个用于打印位图的课程.我的类用于从流中获取像素数据,以便可以以正确的格式将其发送到打印机.现在这个类很简单,它只读取每个像素的高度,宽度和位数. 使用它读取的偏移量并将像素数据返回给打印机.现在我只使用每像素1位黑白图像.我正在使用的位图是Windows格式. 这是原始图像: 这是打印的结果,第一张图片没有任何变换.第二个是使用以下代码修改BitArray的结果:Bit...