有人可以通过远处的颜色检测将我指向正确的方向吗?我使用了下面的代码,如果对象或兴趣点距离不到 10 英尺,它会正确抓取图像的 RBG 值。当对象距离较远时,代码返回错误值。我想拍摄距离大于 10 英尺的物体的照片并检测该图像的颜色。
//On the top of your swift
extension UIImage {
func getPixelColor(pos: CGPoint) -> UIColor {
let pixelData = CGDataProviderCopyData(CGImageGetDataProvider(self.CGImage))
let data: UnsafePointer<UInt8> = CFDataGetBytePtr(pixelData)
let pixelInfo: Int = ((Int(self.size.width) * Int(pos.y)) + Int(pos.x)) * 4
let r = CGFloat(data[pixelInfo]) / CGFloat(255.0)
let g = CGFloat(data[pixelInfo+1]) / CGFloat(255.0)
let b = CGFloat(data[pixelInfo+2]) / CGFloat(255.0)
let a = CGFloat(data[pixelInfo+3]) / CGFloat(255.0)
return UIColor(red: r, green: g, blue: b, alpha: a)
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试为我的应用创建一个“喜欢”按钮。当我按下按钮时,我想让它变成第二张图像,当我再次按下它时,我又把它改回第一张图像。
这是我的代码:
@IBAction func sendLike(sender: UIButton) {
if let _ = UIImage(named:"pinkLike.png") {
sender.setImage(UIImage(named:"like.png"), forState: .Normal)
}
if let _ = UIImage(named:"like.png") {
sender.setImage(UIImage(named:"pinkLike.png"), forState: .Normal)
}
}
Run Code Online (Sandbox Code Playgroud)
出于某种原因,这行代码按我希望的方式工作:
if let _ = UIImage(named:"like.png") {
sender.setImage(UIImage(named:"pinkLike.png"), forState: .Normal)
}
Run Code Online (Sandbox Code Playgroud)
但是当我再次按下按钮时,这条线不会改变它:
if let _ = UIImage(named:"pinkLike.png") {
sender.setImage(UIImage(named:"like.png"), forState: .Normal)
}
Run Code Online (Sandbox Code Playgroud) 是否可以计算资产目录中具有特定前缀的图片?例如,我有如下图像:
鸡尾酒_01
鸡尾酒_02
...
Cocktail_nn
和其他类似的团体。
当我的应用程序启动时,我会执行如下代码:
var rec_cocktail = [UIImage]()
for i in 1..<32 {
if i < 10 {
let name: String = "Cocktail__0" + i.description
rec_cocktail.append(UIImage(named: name)!)
} else {
let name: String = "Cocktail__" + i.description
rec_cocktail.append(UIImage(named: name)!)
}
}
alcoholImages.append(rec_cocktail)
Run Code Online (Sandbox Code Playgroud)
它完美无缺,但我要加载的组很少,而且每个组都有不同数量的图像。每次从资产目录中添加或删除图片时,我都必须检查和更改范围。
我想在 Swift 中使用 iOS-Charts 绘制一些折线图来显示数据。现在,我有一个要求,在每个点旁边放一个小图标。
现在我可以在图形上添加 UIImage,但问题是如何正确获取每个点的 CGPoint 坐标。
如果我改变设备的方向或设备类型,图像的位置仍然是固定的,不会相应地改变。这是 iPhone 6s 图片。
这是我当前的代码:
for i in 0..<dataPoints.count {
let pointLeft = lineChartView.getPosition(dataEntries[i], axis: .Left)
let image = UIImage(named: numbers[i])
let imageView = UIImageView(image:image!)
imageView.frame = CGRect(x: pointLeft.x, y: pointLeft.y, width: 16, height: 16)
lineChartView.addSubview(imageView)
}
Run Code Online (Sandbox Code Playgroud) 我有以下问题:
致命错误:在解开 Optional 值时意外发现 nil
@IBOutlet weak var DetailImageView1: UIImageView!
@IBOutlet weak var DetailLabel: UILabel!
@IBOutlet weak var DetailLabel2: UILabel!
var SentData1: String!
var SentData2: String!
var SentData3: NSURL!
override func viewDidLoad() {
super.viewDidLoad()
DetailLabel.text = SentData1
DetailLabel2.text = SentData2
let url = NSURL(string: "\(SentData3)")
let data = NSData(contentsOfURL: url!)
DetailImageView1.image = UIImage(data: data!)
Run Code Online (Sandbox Code Playgroud)
我正在从一个 url 中获取图片并将 url 链接从我以前的视图控制器转到这个。然后我创建了 SentData3:NSURL!现在我必须在 DetailImageView1.image 中显示图片,但是当我尝试测试应用程序时出现错误。
如果有人能告诉我这个错误,我会很高兴。
我的问题是有关获取的图像的文件名UIImage是在使用UIImageView。
这是我的示例代码:
// Using image from UIImageObject
imageView1.image = myUIImage
// Using image from XAssets
imageView2.image = UIImage(named: "myImageName")
Run Code Online (Sandbox Code Playgroud)
在 UI 测试中,如何获取图像文件的名称?预期的结果是:
"myUImageObject" // For imageView1
"myImageName" // For imageView2
Run Code Online (Sandbox Code Playgroud)
有没有办法获得这个值?
谢谢大家!
我正在将图像加载到我的自定义单元格上的 UIImageView 中。该图像是使用 UIImageView+WebCache.h 加载的,我想更改 tintColor,但我正在尝试此代码,但无法更改颜色...
[cell.icon sd_setImageWithURL:[NSURL URLWithString:myURL
placeholderImage:[UIImage imageNamed:imageName options:SDWebImageRefreshCached];
UIImage* img = [UIImage imageNamed:imageName];
cell.icon.image = [img imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
cell.icon.tintColor = [UIColor yellowColor];
Run Code Online (Sandbox Code Playgroud)
我怎么解决这个问题?
如何设置 UIButton 图像,该图像是带边框的圆形我编写了相关代码但图像没有以正确的圆形显示..这是我的代码..
btnMyProfile.setImage(UIImage(named: "MyDefaultImg.png"), for: .normal)
btnMyProfile.imageView?.contentMode = .scaleAspectFit
btnMyProfile.imageView?.layer.cornerRadius = (btnMyProfile.imageView?.frame.width)! / 2
btnMyProfile.imageView?.layer.borderColor = UIColor.blue.cgColor
btnMyProfile.imageView?.layer.borderWidth = 2.0
Run Code Online (Sandbox Code Playgroud)
我能做些什么来实现我想要的输出?
我有这样的图像:

我想将此图像的大小调整为特定的宽度:假设 200像素,其中还应该计算高度。(因此图像应保持其宽高比例)
这就是我到目前为止所得到的:
extension UIImage {
func resize(newSize1: CGSize) -> UIImage {
let size = self.size
let widthRatio = newSize1.width / size.width
let heightRatio = newSize1.height / size.height
var newSize2: CGSize
if(widthRatio > heightRatio) {
newSize2 = CGSize(width: size.width * heightRatio, height: size.height * heightRatio)
} else {
newSize2 = CGSize(width: size.width * widthRatio, height: size.height * widthRatio)
}
let rect = CGRect(x: 0, y: 0, width: newSize2.width, height: newSize2.height)
UIGraphicsBeginImageContextWithOptions(newSize2, false, 1.0)
self.draw(in: rect)
let newImage …Run Code Online (Sandbox Code Playgroud) 我从我的 firebase 数据库中获取一个 url 来下载图像,并且在主线程中的 cell.articleImage.image = UIImage(data: data) 上收到此错误,它没有崩溃,但不会返回图像,有谁知道会出什么问题?
override func viewDidLoad() {
super.viewDidLoad()
tableView.delegate = self
tableView.dataSource = self
DispatchQueue.global().async {
let v = UIView(frame: .zero)
}
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
guard let cell = tableView.dequeueReusableCell(withIdentifier: "articleCell") as? articlesCell else {
return UITableViewCell()}
let article = articleArray[indexPath.row]
let url = URL(string: article.imageURL)!
DispatchQueue.global().async {
do{
let data = try Data(contentsOf: url)
DispatchQueue.global().sync {
cell.articleImage.image = UIImage(data: data)
}
} catch { …Run Code Online (Sandbox Code Playgroud) uiimage ×10
ios ×9
swift ×9
uiimageview ×3
uibutton ×2
colors ×1
firebase ×1
ios-charts ×1
objective-c ×1
rgb ×1
swift3 ×1
tintcolor ×1
url ×1
xcode ×1