我想编写一个函数,该函数将在这张图片(http://tinypic.com/r/34il9hu/6)的天空中创建一个随机数(在 m 和 n 之间,包括在内)星星。我希望星星应该由单个白色像素或由 4 个相邻白色像素组成的正方形随机组成。我也不想在树枝、月亮或鸟上放置一个“星星”(1 个像素)尽管
我将如何在 python 中做到这一点?任何人都可以帮忙吗?谢谢!
到目前为止我有这个:
到目前为止,我已经开始并提出了这一点,我不知道其中是否正确,或者即使我走在正确的轨道上:
def randomStars(small, large):
import random
file = pickAFile()
pic = makePicture(myPic)
#x = random.randrange(getWidth(pic))
#y = random.randrange(getHeight(pic))
for pixel in pic.getAllPixels():
if random.random() < 0.25:
pixel.red = random.randint(256)
pixel.green = random.randint(256)
pixel.blue = random.randint(256)
show(pic)
Run Code Online (Sandbox Code Playgroud)
我不知道我在做什么:(
我想将像素直接写入屏幕(不使用顶点和多边形)。我调查了类似问题的各种答案,最引人注目的是这里和这里。
我看到有几种方法可以将像素绘制到屏幕上,但它们似乎都是间接的,并且使用了不必要的浮点运算:
GL_POINT为屏幕上的每个像素绘制一个。我试过这个并且它有效,但这似乎是一种在屏幕上绘制像素的低效方法。当我的数据将被转换为像素数据数组时,为什么要以浮点形式写入我的数据。
创建一个跨越整个屏幕的二维四边形并向其写入纹理。与第一个选项一样,这似乎是将像素放在屏幕上的一种迂回方式。纹理在放到屏幕上之前仍然需要经过光栅化。纹理也必须是方形的,而且大多数屏幕都不是方形的,所以我必须处理这个问题。
如何使用 OpenGL 以最直接、最有效的方式将颜色矩阵(其中pixels[0][0]对应于左上角和pixels[1920][1080]对应于右下角)显示在屏幕上?
直接写入帧缓冲区似乎是最有前途的选择,但我只看到人们使用帧缓冲区进行着色。
我创建了一个简单的 Python 脚本,只要特定程序运行,它就会被激活。该程序将信息发送到屏幕,脚本需要抓取和分析这些信息。
脚本的部分逻辑可以表示如下:
while a certain condition is met:
function to continuously check pixel information on a fixed area of the screen()
if pixel data (e.g. RGB) changes:
do something
else:
continues to check
Run Code Online (Sandbox Code Playgroud)
我已经找到了可以做到这一点的东西,但没有我想要的那么快。这是使用具有任意值的 Python 成像库 (PIL) 的解决方案:
import ImageGrab
box = (0,0,100,100) # 100x100 screen area to capture (0x0 is top left corner)
pixel = (60,20) #target pixel coordenates (must be within the box's boundaries)
im = ImageGrab.grab(box) #grabs the image area (aka printscreen) -> source of …Run Code Online (Sandbox Code Playgroud) 我的intC#程序中有一个像素数组,我想将其转换为图像.问题是我正在将程序的Java源代码转换为等效的C#代码.在java中,行读取将int像素数组显示为image:
Image output = createImage(new MemoryImageSource(width, height, orig, 0, width));
Run Code Online (Sandbox Code Playgroud)
有人能告诉我C#等价吗?
这里的orig是int像素数组.我搜索了Bitmap类并且有一个方法被调用,SetPixel但问题是需要ax,y坐标数.但我的代码中有一个int像素数组.另一个奇怪的事情是我的orig数组有负数,它们远远超过255.在Java中,这是相同的情况(意味着C#和Java中的数组具有相同的值),并且值在Java中正常工作.
但我无法将该行转换为C#.请帮忙.
我想在Matlab中创建一个函数,给定一个图像,允许用户通过在图像中单击它来选择像素并返回像素的坐标.理想情况下,人们可以连续点击图像中的几个像素,并且该函数将所有相应的坐标存储在矩阵中.有没有办法在Matlab中做到这一点?
我正在尝试访问Android中图像的原始像素数据.
代码看起来像这样:
Bitmap bitmap = BitmapFactory.decodeFile("image.png");
// assert valid input
if ((bitmap.getConfig() == null) || bitmap.getConfig() == Config.ARGB_8888)
throw new Exception("bad config");
ByteBuffer buffer = ByteBuffer.allocate(4 * bitmap.getWidth() * bitmap.getHeight());
bitmap.copyPixelsToBuffer(buffer);
return buffer.array();
Run Code Online (Sandbox Code Playgroud)
如何buffer.array()存储线性1D中的像素?
如何在C#中有效地将BitmapSource转换为byte [],反之亦然?
是否可以在画布A中读取图像的像素并在画布B上创建像素?我想在Canvas B上创建新像素,只有图像的像素为绿色.例如.如果图像的像素(120,45)为绿色,我需要在(120,45)画布B中创建绿色像素
你好先生/ mem即时制作桌面应用程序在java Swing for doctor.I想要找到每个像素值不计算在两个点之间.假设我有一个点(100,145)和第二个点是(173,190),我想得到这个之间的像素两点.表示两点之间的(x,y)值的每个像素.那我怎么能这样做?
我已阅读"屏幕支持API指南"(http://developer.android.com/guide/practices/screens_support.html)以及更多资源,但我无法理解dpi的工作原理.
我正在开发一个游戏,我没有使用任何布局(我将使用canvas.drawbitmap等函数自己绘制).但是当我使用Canvas.Drawbitmap函数时,我需要指定我想要绘制图像的屏幕像素.
所以我现在正在使用固定分辨率(1280x800),我正在使用drawable-nodpi文件夹,如果手机的屏幕更宽或更窄,我会稍后调整画布.问题在于,当分辨率不是原生分辨率(1280x800)时,图像看起来很糟糕.
我该怎么做才能解决这个问题?我在3天内阅读和阅读,但所有解释和示例都与Layouts,Nine Patches等有关.