标签: buffer

如何写入(Bitmap?)图像缓冲区以获得更快的GDI +显示?

使用C++和.net我想要显示一个数据流作为滚动图像.每次我得到一些新数据时,我想将其添加为新行(128x1像素)并将之前的内容滚动到一侧.

我对这个问题的第一次尝试涉及每次获得新行时渲染整个数据集.这有效,但速度太慢,所以我认为写入某种缓冲区可能更有意义(可能是位图?).问题是我无法看到我能做到这一点; Graphic对象允许你画得很开心,但我看不出一种明显的方法告诉我的控件使用一个Bitmap对象作为它的缓冲区?同样,我看不到一种绘制位图的方法,然后我可以将其写入屏幕.

这一定是可能的,但到目前为止我的google-foo已经失败了......

[编辑1]为了澄清,数据是一个频谱图.下图显示了我试图实现的那种事情:

alt text http://www.geekops.co.uk/photos/0000-00-02%20(Forum%20images)/ScrollingGraphicsAlgorithmExplanation.png

我正在绘制的数据来自浮点数组.没有什么可以限制我会得到多少,所以我只想忘记数据,因为它从情节的一侧掉落.

我目前正在从a继承System::Windows::Forms::UserControl,但如果有更好的替代品,可以切换到别的东西吗?

.net buffer drawing gdi+ bitmap

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

救命!我在检索网页时获得了OutofMemory

我正在从网上检索HTML.我得到"java.lang.OutOfMemoryError: Java heap space (repl-1:3)"

;; fetch: URL -> String
;; fetch returns the string of the HTML url
(defn fetch [url]
   (with-open [stream (. url openStream)]
      (let [buffer (BufferedReader. (InputStreamReader. stream))]
        (apply str (line-seq buffer)))))
Run Code Online (Sandbox Code Playgroud)

我认为问题是"应用str".有没有更简单的方法

  • 将缓冲的阅读器转换为字符串?
  • 或检索网页?

编辑:我需要检索

http://fiji4.ccs.neu.edu/~zerg/lemurcgi/lemur.cgi?g=p&v=or&v=measures&v=being&v=taken&v=against,&v=corrupt&v=public&v=officials&v=of&v=any&v=governmental&v=jurisdiction&v =全世界.

java buffer clojure

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

delphi中的图像缓冲区实现

上下文

我正在绘制画布,它会定期更新并闪烁.逻辑思考我认为这是因为我的重绘方法清除了Canvas,然后一次将一个元素绘制到画布上.所以我的想法是写一个Timage,然后将图片设置为Timage.


信息

这是我的代码

procedure Tmainwindow.Button3Click(Sender: TObject);
var bufferpicture:TImage;
begin

//draw stuff to bufferpicture
  //***
//draw stuff to bufferpicture

myrealpicture.picture:=bufferpicture.picture;

end;
Run Code Online (Sandbox Code Playgroud)

运行代码后,我得到一个错误显示如下. 替代文字


问题 如何将画布设置为另一个画布,因为画布是只读属性?或者有更好的方法来做我想做的事情?

delphi buffer drawing canvas image

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

为什么必须在HTTP响应的开头调用SetCookie?

在阅读有关cookie的过程中,我发现很难掌握以下语句
" setcookie()必须在HTTP响应的任何输出之前调用.主要原因是PHP没有缓冲HTTP响应"请帮助我以简单的方式解释它

php cookies buffer

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

奇怪的stdout行为

我目前正在用C++编写一个套接字程序,由于某种原因,我在尝试写入控制台(一项必需的任务)时遇到了非常奇怪的行为.

cout << themsg[0] << themsg[1] << endl;
cout << "Phase 3: Supernode sent the message " << themsg[0] << " on dynamic port number " << themsg[1] << endl;
Run Code Online (Sandbox Code Playgroud)

themsg [0]是字符串"User#2:Dick是什么?"

themsg [1]是字符串"39416"

第一行应写"用户#2:怎么了迪克?" 到控制台,然后是"39416".

第二行应打印"第3阶段:超级节点发送消息用户#2:怎么了迪克?动态端口号39416"

控制台输出如下所示:

394162:What's up Dick?
on dynamic port number 39416essage User#2:What's up Dick?
Run Code Online (Sandbox Code Playgroud)

我知道themsg [0]和themsg [1]是正确的,因为我将它们的值写入文件进行验证.它肯定是一些奇怪的stdout问题.

对于第一行,出现themsg [1]的5个字符会覆盖themsg [0]的前五个字符.对于第二行,似乎忽略了cout的前两个参数,然后附加了一个消息片段.

如果有人可以提供帮助,我会非常感激.我尝试使用flush()但无济于事.我不确定输出缓冲区是如何工作的,所以我真的迷失了.

c++ buffer cout stdout std

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

在C中读取文件到char数组:或者如何动态分配数组?

使用Linux系统调用打开读取.在读取调用接受3个参数

read(File descriptor, Buffer array, Size of the buffer array);
Run Code Online (Sandbox Code Playgroud)

我的问题与论点#3有关.假设我有多个文本文件要读入我的缓冲区数组.但据我所知,C没有像VectorArrayList或任何其他动态大小的结构.

有没有一种简单的方法来计算文件的大小,所以我知道我应该为char数组分配多少空间?

c arrays buffer system-calls

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

Android/Java简单的FiFO缓冲区

我在寻找简单的字节FiFo缓冲区.我必须放置或获取或单个字节或数组.但我可以每次都将单字节放入并获得数组,反之亦然.
任何想法或示例代码来帮助我?

java android buffer fifo

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

在Golang中使用偏移量写入固定大小的缓冲区

我是Golang的新手,我正在尝试写入一个缓冲区,该缓冲区应该在开始写入之前填充到特定大小.

我的尝试:

buf := bytes.NewBuffer(make([]byte, 52))

var pktInfo uint16 = 243
var pktSize uint16 = 52
var pktLine uint16 = binary.LittleEndian.Uint16(data)
var pktId uint16 = binary.LittleEndian.Uint16(data[6:])

// header
binary.Write(buf, binary.LittleEndian, pktInfo)
binary.Write(buf, binary.LittleEndian, pktSize)
binary.Write(buf, binary.LittleEndian, pktLine)

// body
binary.Write(buf, binary.LittleEndian, pktId)
(...a lot more)

fmt.Printf("%x\n", data)
fmt.Printf("%x\n", buf.Bytes())
Run Code Online (Sandbox Code Playgroud)

问题是它是在字节之后写入而不是从开始写入.我怎么做?

buffer go

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

用C++初始化Halide Buffer

我正在尝试使用C++ 1D阵列初始化Halide Buffer.鉴于其他一些在线帖子,这是我到目前为止所得到的:

Image<float> in(Buffer(type_of<float>(), size_x, 0, 0, 0, NULL, in_ptr));
Run Code Online (Sandbox Code Playgroud)

其中in_ptr是指向我的C++数组的指针.当我运行这个时,我收到以下错误:

错误:在'('token image in in(Buffer(type_of(),padded_size*(jb + 1),0,0,0,NULL,d_In))之前缺少模板参数;

所以我将我的代码更改为:

Image<float> in(Buffer<float>(type_of<float>(), size_x, 0, 0, 0, NULL, in_ptr));

但这与任何构造函数都不匹配,但我找不到有关如何初始化Buffer的任何好文档.

甚至可以做这样的事情吗?如何使用C++ 1D或2D数组初始化Halide缓冲区?

c++ buffer halide

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

从缓冲区中删除多个字节的规范方法

假设我在Node.js中有一个简单的缓冲区,如下所示:

const bytes = Buffer.from('abcdefg');
Run Code Online (Sandbox Code Playgroud)

这个缓冲区实例有sliceconcat作为方法,但我真的不知道如何使用这些来基本上创建数组的pop/shift/splice的功能.

这里是缓冲区文档:https://nodejs.org/api/buffer.html

我基本上要做的是读取/删除前X个字节,如下所示:

function read(x){

// return the first x number of bytes from buffer
// and remove those bytes from the buffer
// side-effects be damned for the moment
}
Run Code Online (Sandbox Code Playgroud)

这就是我所拥有的,但它对我来说似乎很"错误",即使它似乎也有效:

let items = Buffer.from('abcdefg');

function read(x){
    const b = items.slice(0,x);
    items = items.slice(x,items.length);
    return b;
}

console.log(String(read(4)));
console.log(String(items));
Run Code Online (Sandbox Code Playgroud)

有一个更好的方法吗?

另外,我不确定读取是否是正确的单词,但pop会意味着一个数组...使用描述这个函数的功能是什么?

javascript buffer node.js node.js-buffer

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

标签 统计

buffer ×10

c++ ×2

drawing ×2

java ×2

.net ×1

android ×1

arrays ×1

bitmap ×1

c ×1

canvas ×1

clojure ×1

cookies ×1

cout ×1

delphi ×1

fifo ×1

gdi+ ×1

go ×1

halide ×1

image ×1

javascript ×1

node.js ×1

node.js-buffer ×1

php ×1

std ×1

stdout ×1

system-calls ×1