假设我在0到1的范围内有一个2D Numpy值数组,它代表一个灰度图像.然后我如何将其转换为PIL图像对象?迄今为止的所有尝试都产生了极其奇怪的散乱像素或黑色图像.
for x in range(image.shape[0]):
for y in range(image.shape[1]):
image[y][x] = numpy.uint8(255 * (image[x][y] - min) / (max - min))
#Create a PIL image.
img = Image.fromarray(image, 'L')
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,numpy数组图像通过(image [x] [y] - min)/(max - min)进行归一化,因此每个值都在0到1的范围内.然后它乘以255并转换为8位整数.理论上,这应该通过具有模式L的Image.fromarray处理成灰度图像 - 但结果是一组分散的白色像素.
我正在使用SDL为图形制作C++中的RTS.
每次我运行游戏时,它都会在编译器调试窗口中无错误地崩溃.它不会立即或持续崩溃,有时需要10秒才能崩溃,有时需要2分钟才能崩溃.
当我玩回归值时(在主函数的末尾),结果证明它没有崩溃,而是因为返回值与我改变它的一致而退出.
我唯一的理论是我的轮询事件循环是故障,并告诉程序在不应该退出时退出.
这是我的事件循环,包含在我的游戏循环中:
if( SDL_PollEvent( &event ) )
{
if( event.type == SDL_MOUSEMOTION )
{
mx = event.motion.x;
my = event.motion.y;
}
if( event.type == SDL_MOUSEBUTTONDOWN )
{
if( hut.getselected() && hut.getplacable() )
{
hut.place( map );
}
}
if( event.type == SDL_QUIT )
{
quit = true;
}
switch( event.key.keysym.sym )
{
case SDLK_ESCAPE: quit = true; break;
}
}
Run Code Online (Sandbox Code Playgroud)
当鼠标移动或点击时,它是否有可能让它退出?我不认为ram是否超载,因为它只显示它需要的瓦片.
我的编译器VisualC++是否也可能搞砸了?
对于Slick加载png文件而没有警告,它们不能隔行扫描.我没有photoshop,我也不想得到它.是否有另一种方法可以通过Paint.net插件去交错图像?我在Windows机器上,只提到这个,因为有很多反交错程序只能在Mac或Linux上运行.
假设我在html文档中有一个绝对位置的div,如下所示:
<div style="position:absolute">Hello!</div>
Run Code Online (Sandbox Code Playgroud)
现在,假设我想给它一个X和一个Y(出于我的目的,可能通过JQuery)。这很容易,只需将“ left”和“ top”属性分别设置为X和Y。
但是,当X和Y成为该div的中心时,此任务将变得更加困难。如果不能总是保证div的大小相同,则不能仅将X和Y偏移到适当的数量。
如果可能,如何将div的中心设置为特定的X和Y?如果有帮助,这些div将仅包含文本,不包含子元素。
我宁愿使用CSS而不是JavaScript,但是如果有必要,我会接受的。