我正在使用 UIImage View 并像下面的代码一样添加图像
NSURL *imageURL = [NSURL URLWithString:@"http://d1mxp0yvealdwc.cloudfront.net/e92c939d-e83b-4592-b367-327fa67339fb/1001 123.jpg"];
NSLog(@"imge %@",imageURL);
NSData *imageData = [NSData dataWithContentsOfURL:imageURL];
NSLog(@"imge %@",imageData);
UIImage *image = [UIImage imageWithData:imageData];
NSLog(@"imge %@",image);
[image_view setImage:image];
Run Code Online (Sandbox Code Playgroud)
但所有 nslog 都显示 null 实际上 url 存在问题,但此显示图像在网络上,所以请告诉我这里有什么问题。
在我的应用程序中,我让用户将他的图像上传到我的亚马逊 s3 存储桶。一旦用户从手机捕获照片,我就会将其显示在屏幕上,然后开始上传。此时,我开始显示进度条,告诉用户现在的体育场是什么。但是有没有办法让图像在上传时变灰并在上传完成后显示原始颜色?
\n\n到目前为止我的代码如下:
\n\nfunc imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage, editingInfo: [String : AnyObject]?) {\n\n let path = NSTemporaryDirectory().stringByAppendingString("image.jpeg")\n\n if let data = UIImageJPEGRepresentation(image, 0.8) {\n data.writeToFile(path, atomically: true)\n\n }\n\n self.dismissViewControllerAnimated(true, completion: {})\n\n let credentialsProvider = AWSCognitoCredentialsProvider(regionType:CognitoRegionType,\n identityPoolId:CognitoIdentityPoolId)\n let configuration = AWSServiceConfiguration(region:CognitoRegionType, credentialsProvider:credentialsProvider)\n AWSServiceManager.defaultServiceManager().defaultServiceConfiguration = configuration\n\n let ext = "jpeg"\n\n let uploadRequest = AWSS3TransferManagerUploadRequest()\n uploadRequest.body = NSURL(string: "file://"+path)\n uploadRequest.key = NSProcessInfo.processInfo().globallyUniqueString + "." + ext\n uploadRequest.bucket = S3BucketName\n uploadRequest.contentType = "image/" + ext\n\n\n//here I would like to present …Run Code Online (Sandbox Code Playgroud) 我将如何改变 uitableview 背景图像的大小?默认情况下,它会自动为我调整图像大小,但我希望我的图像小一点。我尝试过执行以下操作...
let image = UIImage(named: "noFoldersImage")
let iv = UIImageView(image: image)
iv.contentMode = .scaleAspectFit
iv.layer.frame = CGRect(x: self.view.frame.midX, y: self.view.frame.midY, width: 200, height: 200)
self.tableView.backgroundView = iv
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用,有什么想法吗?谢谢
我想创建Photos类似的视频视图,在页脚中将有一秒的视频帧。
为此我正在使用这段代码
var imgs : [UIImage] = []
let assetImgGenerate : AVAssetImageGenerator = AVAssetImageGenerator(asset: video)
assetImgGenerate.appliesPreferredTrackTransform = true
let duration = Int(CMTimeGetSeconds(video.duration))
for i in 0 ... duration {
if let img = generateFrames(assetImgGenerate : assetImgGenerate , fromTime: Float64(i))
{
imgs.append(img)
}
Run Code Online (Sandbox Code Playgroud)
该代码运行良好。我得到了与我想要的相同的结果。
现在的问题是 -如果视频大小超过 50 秒并且我正在提取 uiimage,那么当内存超出设备的可用空间时,我的应用程序会崩溃。
我的视频时长为 120 到 200 秒。在内存管理方面有什么更好的方法呢?(我无法延迟加载图像,因为我希望将图像预加载到屏幕中。)
编辑
func generateFrames(assetImgGenerate : AVAssetImageGenerator, fromTime:Float64) -> UIImage? {
let time : CMTime = CMTimeMakeWithSeconds(fromTime, 1)
var img: CGImage?
img = try? assetImgGenerate.copyCGImage(at:time, actualTime: …Run Code Online (Sandbox Code Playgroud) 我想检查图像是否存在,但是在可失败的初始化中......我可以做到丑陋,但我真的想知道是否self == nil可能......
extension UIImage {
convenience init?(_ name:String) {
let image = UIImage(named:name)
guard image != nil else { Assert("image \(name) missing yo"); return nil }
self.init(named: name)
}
}
Run Code Online (Sandbox Code Playgroud)
更干净但不编译
extension UIImage {
convenience init?(_ name:String) {
self.init(named: name)
if self == nil { Assert("image \(name) missing yo") }
}
}
Run Code Online (Sandbox Code Playgroud)
静态 func 不如 init 有趣
extension UIImage {
static func with(_ name:String) -> UIImage? {
let image = UIImage(named:name)
if image == nil { Assert("image …Run Code Online (Sandbox Code Playgroud) 我试图在 swift 4 中将 URL 图像设置为 UIButton。我正在使用 AFNetworking 从 URL 加载我的图像。我正在了解将图像设置为按钮的最佳途径是什么。
使用.setImage()或setImageWith()不适用于 urls 和 uibuttons。
这是正在使用的 URL:
let imageUrl = URL(string: baseUrl + profile)
我正在尝试在 UIImageView 上添加永久摇动动画。我怎样才能控制它的动画时间呢?
var coffeeImageView = UIImageView(image: UIImage(named: "coffee.png"))
shakeImg.frame = CGRectMake(100, self.view.frame.size.height - 100, 50, 50)
self.view.addSubview(coffeeImageView)
let coffeeShakeAnimation = CABasicAnimation(keyPath: "position")
coffeeShakeAnimation.duration = 0.07
coffeeShakeAnimation.repeatCount = 20
coffeeShakeAnimation.autoreverses = true
coffeeShakeAnimation.fromValue = NSValue(cgPoint: CGPointMake(shakeImg.center.x - 10, shakeImg.center.y))
coffeeShakeAnimation.toValue = NSValue(cgPoint: CGPointMake(shakeImg.center.x + 10, shakeImg.center.y))
shakeImg.layer.add(coffeeShakeAnimation, forKey: "position")
Run Code Online (Sandbox Code Playgroud) 我gradient从 2生成 a UIColors,然后UIImage使用这些函数从中生成 a。
//Function to generate the UIImage from 2 colors.
func createGradient(color1: UIColor, color2: UIColor) -> UIImage {
let gradientLayer = CAGradientLayer()
gradientLayer.frame = self.view.bounds
gradientLayer.colors = [color1.cgColor, color2.cgColor]
let image = image(from: gradientLayer)
return image
}
//Function to generate an Image from a CALayer.
func image(from layer: CALayer) -> UIImage {
UIGraphicsBeginImageContextWithOptions(layer.frame.size, true, 0)
layer.render(in: UIGraphicsGetCurrentContext()!)
let outputImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return outputImage ?? UIImage()
}
Run Code Online (Sandbox Code Playgroud)
我的结果是这样的
但我想从左上角到右下角对角地显示这个......所以Red应该从左上角开始,并Yellow …
我有一张普通图像UIImage和一张list图像。我的目标是每隔几秒图像就会自动改变一次,并通过我的imageList.
这是我的清单:
let images: [UIImage] = [
UIImage(named: "avocadoImage")!,
UIImage(named: "beerImage")!,
UIImage(named: "bikeImage")!,
UIImage(named: "christmasImage")!,
UIImage(named: "dressImage")!,
UIImage(named: "giftImage")!,
UIImage(named: "goalImage")!,
UIImage(named: "rollerImage")!,
UIImage(named: "shirtImage")!,
UIImage(named: "shoeImage")!,
UIImage(named: "travelImage")!,
]
Run Code Online (Sandbox Code Playgroud)
我试过这个:
NSTimer(timeInterval: 0.5, target: self, selector: "ChangeImage", userInfo: nil, repeats: true)
Run Code Online (Sandbox Code Playgroud)
但我不知道如何一遍又一遍地循环我的数组。
我UITableView列出了其中包含图像的社交媒体帖子。一旦加载了所有帖子详细信息并缓存了图像,它看起来不错,但在加载时,它通常会显示带有错误帖子的错误图像。
几个月来我一直在努力并回到这个问题。我不认为这是一个加载问题,它几乎看起来像 iOS 将图像转储到任何旧单元格,直到找到正确的单元格,但老实说我没有想法。
这是我的图像扩展,它也负责缓存:
let imageCache = NSCache<NSString, AnyObject>()
extension UIImageView {
func loadImageUsingCacheWithUrlString(_ urlString: String) {
self.image = UIImage(named: "loading")
if let cachedImage = imageCache.object(forKey: urlString as NSString) as? UIImage {
self.image = cachedImage
return
}
//No cache, so create new one and set image
let url = URL(string: urlString)
URLSession.shared.dataTask(with: url!, completionHandler: { (data, response, error) in
if let error = error {
print(error)
return
}
DispatchQueue.main.async(execute: {
if let downloadedImage = UIImage(data: …Run Code Online (Sandbox Code Playgroud) uiimage ×10
swift ×9
ios ×6
uiimageview ×3
uitableview ×2
afnetworking ×1
animation ×1
avasset ×1
cgimage ×1
gradient ×1
memory-leaks ×1
objective-c ×1
uibutton ×1
uikit ×1