我需要在屏幕上或从活动窗口获取某些像素的颜色,我需要快速完成.我尝试过使用win32gui和ctypes/windll,但它们太慢了.这些程序中的每一个都获得100像素的颜色:
import win32gui
import time
time.clock()
for y in range(0, 100, 10):
for x in range(0, 100, 10):
color = win32gui.GetPixel(win32gui.GetDC(win32gui.GetActiveWindow()), x , y)
print(time.clock())
Run Code Online (Sandbox Code Playgroud)
和
from ctypes import windll
import time
time.clock()
hdc = windll.user32.GetDC(0)
for y in range(0, 100, 10):
for x in range(0, 100, 10):
color = windll.gdi32.GetPixel(hdc, x, y)
print(time.clock())
Run Code Online (Sandbox Code Playgroud)
每个都需要大约1.75秒.我需要这样的程序花费不到0.1秒.是什么让它如此缓慢?
我正在使用Python 3.x和Windows 7.如果您的解决方案需要我使用Python 2.x,请链接到一篇文章,展示如何安装Python 3.x和2.x. 我看了,但无法弄清楚如何做到这一点.
谢谢!
我有以下问题,只能部分解决它.我正在使用XCode 3.2.5,为iOS 4+开发.
我只是尝试创建一个预定义大小的图像,操纵它上面的像素,然后在UIImageView中显示图像.我的观点包括连接到的简单Button和名为"buttonClicked"的IBAction以及名为"qrImage"的UIImageView,并设置为"IBOutlet".我使用以下代码:
头文件:myClassViewController.h
#import <UIKit/UIKit.h>
@interface myClassViewController : UIViewController
{
IBOutlet UIImageView *qrImage;
}
@property (nonatomic, retain) UIImageView *qrImage;
- (IBAction) buttonClicked;
- (UIImage*) drawQRImage;
@end
Run Code Online (Sandbox Code Playgroud)
Main-File myClassViewController.m
#import "myClassViewController.h"
#include <math.h>
@implementation myClassViewController
@synthesize qrImage;
-(UIImage*) drawQRImage
{
// load Image
//
UIImage *image = [UIImage imageNamed:@"blank.png"];
CGImageRef imageRef = image.CGImage;
NSData *data = (NSData *) CGDataProviderCopyData(CGImageGetDataProvider(imageRef));
char *pixels = (char *)[data bytes];
unsigned long int startPixel, pixelNr;
// manipulate the individual pixels
//
size_t width = …Run Code Online (Sandbox Code Playgroud) 我想知道如何在Java中处理最佳的像素操作.我正在使用swing并绘制一个1 x 1像素的矩形非常慢.我需要至少获得60 fps,而不需要使用太多资源.对图像的影响首先意味着这可以成功地取得成功吗?或者用Java做这件事一般是个坏主意我是否需要坚持使用C或其他替代方案?
我正在编写一个raycaster的开头,因为我正在使用的openCL有一个Java包装器,我更喜欢用Java工作.
我需要有人帮助澄清我对具有高密度屏幕的新手机的像素大小的理解.因为,它在我的网页设计中抛出一个曲线球.
我对智能手机的初步了解是,像素大小约为480 x 320,这使得设计变得简单,因为像素仍然是相同的像素.
然而,一些智能手机比这更多(或更多).我相信iPhone真的是960 x 640的双倍.我的Galaxy Nexus是1280 x 720.
现在,使用%的时候这很好用.但是,我想要使用修复像素值的东西很多.例如,许多高度值不需要在%s中.此外,如果高度是固定的,一些项目,如徽标,图标,一些图片,当宽度变宽时,我不希望被拉伸...所以这些将需要一致的值.
但是,当像素实际上不是一致的物理测量时,我该如何处理?
使用示例时更容易,所以如果有人可以向我解释,请以图标为例.
当我在手机上登录Facebook时,我会在导航栏中看到这三个通知图标(朋友请求,消息和其他内容).这些是固定的.无论我的手机是直立还是侧面,它们都保持完全相同的尺寸.唯一随宽度变化的是......之间的空间,基本上就是我的工作.
这些图标的测量值是多少?首先,我知道标准图标通常是16x16.那么,他们需要在这些高密度智能手机上使用32x32吗?但是,它们的大小似乎与我在桌面上看到的16x16图标大小不同.他们看起来可能更像12x12.所以,不确定,但我认为智能手机有一个不同的"标准"图标大小,然后是台式机(那会是什么?).
无论如何,我已经有CSS识别正在使用手机来获得我的移动布局.但是,我是否必须更进一步才能识别像素密度,然后调整我的固定值,在这种情况下,加倍?或者还有其他/更好的方法吗?
任何和所有的帮助表示赞赏.我有点难过,并没有太多关于此的信息.谢谢,抱歉这篇冗长的帖子!
我有一个8位像素数据的结构:
struct __attribute__((aligned(4))) pixels {
char r;
char g;
char b;
char a;
}
Run Code Online (Sandbox Code Playgroud)
我想使用SSE指令来计算这些像素上的某些东西(即Paeth变换).如何将这些像素作为32位无符号整数加载到SSE寄存器中?
因此,有很多关于如何从ImageData对象的Uint32Array视图中写入整个像素的示例.但是有可能在不增加计数器4次的情况下读取整个像素吗?从hacks.mozilla.org,写一个rgba像素看起来像这样.
var imageData = ctx.getImageData(0, 0, canvasWidth, canvasHeight);
var buf = new ArrayBuffer(imageData.data.length);
var buf8 = new Uint8ClampedArray(buf);
var data = new Uint32Array(buf);
for (var y = 0; y < canvasHeight; ++y) {
for (var x = 0; x < canvasWidth; ++x) {
var value = x * y & 0xff;
data[y * canvasWidth + x] =
(255 << 24) | // alpha
(value << 16) | // blue
(value << 8) | // …Run Code Online (Sandbox Code Playgroud) 我喜欢在c ++中制作"动画",例如MandelBrot Set缩放器,Game of Life模拟器等,通过逐帧将像素直接设置到屏幕上.SetPixel()命令使这非常容易,但不幸的是它也很慢.这是我用于每个帧的那种设置,如果我想用整个数组R的内容绘制整个屏幕:
#include <windows.h>
using namespace std;
int main()
{
int xres = 1366;
int yres = 768;
char *R = new char [xres*yres*3];
/*
R is a char array containing the RGB value of each pixel sequentially
Arithmetic operations done to each element of R here
*/
HWND window; HDC dc; window = GetActiveWindow(); dc = GetDC(window);
for (int j=0 ; j<yres ; j++)
for (int i=0 ; i<xres ; i++)
SetPixel(dc,i,j,RGB(R[j*xres+3*i],R[j*xres+3*i+1],R[j*xres+3*i+2]));
delete [] R;
return …Run Code Online (Sandbox Code Playgroud) 我有一个解锁的Pixel 2并启用了USB调试.然而,如果我把它插入我的电脑,它只会显示充电.USB线工作连接其他设备进行数据传输没有问题,所以它不是电源线.我可以将任何其他设备连接到我的任何端口,即使是最初的Pixel也没有问题.我正在运行Windows 10专业版.Pixel 2可以很好地连接到运行Windows 10 pro的旧电脑.我有Android Studio 3和Google工具的usb驱动程序.如果我进入设备管理器并单击Pixel 2,它会说我有更新的驱动程序,如果我尝试更新.我已经尝试禁用和重新启用USB调试,撤消权限等.除了充电之外,没有什么能使它做任何事情.没有下拉菜单可以选择不同的选项.
如何才能让我的Pixel 2被我的电脑看到?
有人可以建议我一个快速的方法或图书馆的颜色飞溅效果?例如,我选择一种颜色,并且除了我选择的颜色之外,所有颜色的照片都会去饱和.
我尝试过逐像素颜色检查,然后替换颜色,但对于大图像来说太慢了.
int width = originalImage.getWidth();
int height = originalImage.getHeight();
int[] pixels = new int[width * height];
originalImage.getPixels(pixels, 0, width, 0, 0, width, height);
for (int x = 0; x < pixels.length; ++x) {
pixels[x] = Distance(pixels[x], fromColor) < 4 ? targetColor : pixels[x];
}
Bitmap newImage = Bitmap.createBitmap(width, height, originalImage.getConfig());
newImage.setPixels(pixels, 0, width, 0, 0, width, height);
public int Distance(int a, int b) {
return Math.abs(Color.red(a) - Color.red(b)) + Math.abs(Color.green(a) -
Color.green(b)) + Math.abs(Color.blue(a) - Color.blue(b));
}
Run Code Online (Sandbox Code Playgroud)
编辑:
尝试使用颤振使我的应用程序适应特定的平板电脑尺寸时,我感到不舒服。
平板电脑是三星 Galaxy Tab S5e,屏幕为 2560x1600。
当我使颤振返回屏幕尺寸时,使用:
print("Size W is ${MediaQuery.of(context).size.width}");
print("Size H is ${MediaQuery.of(context).size.height}");
Run Code Online (Sandbox Code Playgroud)
我得到的是:
Size W is 1137.7777777777778
Size H is 711.1111111111111
Run Code Online (Sandbox Code Playgroud)
然后,从这个答案我学会了使用:
var pixRatio = MediaQuery.of(context).devicePixelRatio;
Run Code Online (Sandbox Code Playgroud)
所以现在我实际上可以使用以下方法获得正确的值:
print("Corrected size W is ${MediaQuery.of(context).size.width * pixRatio}");
print("Corrected size H is ${MediaQuery.of(context).size.height * pixRatio}");
Run Code Online (Sandbox Code Playgroud)
并得到:
Corrected size W is 2560.0
Corrected size H is 1600.0
Run Code Online (Sandbox Code Playgroud)
问题是,每次我想提出与尺寸的小工具,Container,Image,指定text size在屏幕上等等,我必须使用的伎俩像
Container(
width: 100 / pixRatio,
height: 200 / pixRatio,
),
Run Code Online (Sandbox Code Playgroud)
如果我不包括/pixRatio更正,它只是绘制不正确,我会得到很多像素溢出..
这是将小部件以正确大小放置在屏幕上的唯一方法吗??,我的意思是,我真的需要 …
pixel ×10
android ×2
adb ×1
animation ×1
bitmap ×1
c ×1
c++ ×1
canvas ×1
cgimage ×1
colors ×1
css ×1
dart ×1
draw ×1
flutter ×1
intrinsics ×1
iphone ×1
java ×1
mobile ×1
performance ×1
photo ×1
python ×1
screen ×1
screen-size ×1
sse ×1
swing ×1
typed-arrays ×1
uiimage ×1
windows ×1
windows-7 ×1
x86-64 ×1
xcode ×1