- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我无法通过检测 UIImageView
找到最左边的点/帧/位置。我尝试从 UIImageView
中检测黑色像素,如下所示:
-(void)Black_findcolor
{
UIImage *image = imgview.image;//imgview from i want to detect the most black color pixels.
CFDataRef pixelData = CGDataProviderCopyData(CGImageGetDataProvider(image.CGImage));
int myWidth = CGImageGetWidth(image.CGImage);
int myHeight = CGImageGetHeight(image.CGImage);
const UInt8 *pixels = CFDataGetBytePtr(pixelData);
UInt8 blackThreshold = 10 ;
// UInt8 alphaThreshold = 100;
int bytesPerPixel_ = 4;
CGFloat Xvalue,Yvalue;
int x = 0,y=0;
for( x = 0; x < myWidth; x++)
{
for( y = 0; y < myHeight; y++)
{
int pixelStartIndex = (x + (y * myWidth)) * bytesPerPixel_;
UInt8 alphaVal = pixels[pixelStartIndex];
UInt8 redVal = pixels[pixelStartIndex + 1];
UInt8 greenVal = pixels[pixelStartIndex + 2];
UInt8 blueVal = pixels[pixelStartIndex + 3];
if(redVal < blackThreshold || blueVal < blackThreshold || greenVal < blackThreshold || alphaVal < blackThreshold)
{
NSLog(@"x =%d, y = %d", x, y);
}
}
}
}
从上面我得到了不同的 x 和 y 像素值,但我想把它作为点。所以我必须在最左边的黑色点的 UIImageView
上设置 pin。
imgPin1.center=CGPointMake(x, y);//i tried but didnt get succeed in it // imgpin1 is Global imageview.
那么谁能给我想法或建议如何设置 imgpin1 最左边黑色像素的框架或位置?
如果需要任何其他信息,请告诉我。
提前致谢。
最佳答案
已编辑请查看我编辑过的答案
//You need to get resized image from your imageView in case of sizeToFit etc.
float oldWidth = yourImageView.image.size.width;
float scaleFactor = yourImageView.frame.size.width / oldWidth;
float newHeight = yourImageView.image.size.height * scaleFactor;
float newWidth = oldWidth * scaleFactor;
UIGraphicsBeginImageContext(CGSizeMake(newWidth, newHeight));
[yourImageView.image drawInRect:CGRectMake(0, 0, newWidth, newHeight)];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
CGSize size = newImage.size;
int width = size.width;
int height = size.height;
int xCoord = width, yCoord = height;
UInt8 blackThreshold = 10;
// raw data will be assigned into this array
uint32_t *pixels = (uint32_t *) malloc(width * height * sizeof(uint32_t));
// clear the pixels so any transparency is preserved
memset(pixels, 0, width * height * sizeof(uint32_t));
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
// create a context with RGBA pixels
CGContextRef context = CGBitmapContextCreate(pixels, width, height, 8, width * sizeof(uint32_t), colorSpace,
kCGBitmapByteOrder32Little | kCGImageAlphaPremultipliedLast);
// fill in the pixels array
CGContextDrawImage(context, CGRectMake(0, 0, width, height), [yourImageView.image CGImage]);
for(int y = 0; y < height; y++) {
for(int x = 0; x < width; x++) {
uint8_t *rgbaPixel = (uint8_t *) &pixels[y * width + x];
// convert to grayscale using recommended method: http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale
uint32_t gray = 0.3 * rgbaPixel[1] + 0.59 * rgbaPixel[2] + 0.11 * rgbaPixel[3];
if (gray < blackThreshold)
{
if (x<xCoord)
{
xCoord = x;
yCoord = y;
NSLog(@"X:%d Y:%d",xCoord,yCoord);
}
}
}
}
// we're done with the context and pixels
CGContextRelease(context);
free(pixels);
imgPin1.center=CGPointMake(xCoord, yCoord);
请注意,如果您使用原始图像遍历所有像素并尝试将图钉显示到您的 UIImageView
上,您将获得 X
和 Y
像素在图像原始大小中的坐标,这将不对应于 UIImageView
UIImage
的实际坐标
关于ios - 从 IOS 中的 UIImagview 检测最左边的黑色点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23866473/
我正在开发一个需要在屏幕上查找对象的程序,到目前为止工作正常,但我遇到了多显示器配置问题。 GraphicsEnvironment.getLocalGraphicsEnvironment().getS
使用 mySql,我想列出客户对特定产品类别进行的所有购买。 所以,我有 3 个表:客户 (idCustomer, Name)、类别 (idCategory, CategoryName) 和订单 (i
我的网站上有一个关于 background-size:cover 的小问题我一直在 Firefox 中测试它,但是当我在谷歌浏览器中加载页面时,我在左边得到 1px 的白色。当我使用 backgrou
我已经搜索了几个小时来找到解决我的问题的方法,但没有成功。我遇到的问题是两个按钮的垂直堆叠。 这就是我想要做的:它说按钮在这里两次是我试图放置按钮的地方,但我所能做的就是让它们水平排列而不是垂直排列。
我有一个包含多个元素的导航栏。 Left1 Left2 Left3 Right1 Right2 Right3 我不知道如何将“fixedLef
您好,我正在尝试让 2 个 div 在左侧与右侧对齐。 #div1 #div2 #div1 #div2 #div3 #div2 #div3 #div3 诀窍是当浏览器窗口变小时,我希望#div2 位于
body { font-family: Arial, Helvetica, sans-serif; font-size: 13px;
这个问题在这里已经有了答案: In CSS Flexbox, why are there no "justify-items" and "justify-self" properties? (6
这是我的代码的 jsfiddle 链接: https://jsfiddle.net/Krisalay/zvxxeagh/ 我的 HTML 代码是: MESSAGE 1
所以我有 10 个复选框,每个标签都取自数组中相应的索引。我正在使用 ng-repeat 来展示它们: {{entity}}
我是一名优秀的程序员,十分优秀!