图片相关

  [_sort_btnsetImageWithURL:[NSURLURLWithString:sort.sortImage]forState:UIControlStateNormalcompleted:^(UIImage *image,NSError *error,SDImageCacheType cacheType) {

        

        CGFloat ratio = image.size.height/image.size.width;

        CGFloat btnRatio =CGRectGetHeight(_weakBtn.frame)/CGRectGetWidth(_weakBtn.frame);

        UIImage* thumbImage =nil;

        if (ratio > btnRatio)

        {

            //如果图片过高,去掉图片纵向的收尾部分

            thumbImage = [image croppedImage:CGRectMake(0, image.size.width*(ratio - btnRatio)/2, image.size.width, image.size.width*btnRatio)];

        }

        else

        {

            //如果图片过宽,去掉横向的收尾部分

            thumbImage = [image croppedImage:CGRectMake((image.size.width - image.size.height/btnRatio)/2,0, image.size.height/btnRatio, image.size.height)];

        }

        

        if (thumbImage.size.width < _weakBtn.frame.size.width)

        {

            UIImage *image = [thumbImageresizedImage:_weakBtn.frame.sizeinterpolationQuality:kCGInterpolationHigh];

            image = [JSAvatarImageFactoryavatarImage:imagecroppedToCircle:YES];

            [_weakBtn setImage:imageforState:UIControlStateNormal];

        } else

        {

            UIImage *image = thumbImage;

            image = [JSAvatarImageFactoryavatarImage:imagecroppedToCircle:YES];

            

            [_weakBtn setImage:imageforState:UIControlStateNormal];

        }


    }];


//    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

//        

//        BOOL isExist = [[SDWebImageManager sharedManager].imageCache diskImageExistsWithKey:sort.sortImage];

//        

//        if (isExist)

//        {

//            UIImage* image = [[SDImageCache sharedImageCache] imageFromDiskCacheForKey:sort.sortImage];

//            CGFloat ratio = image.size.height/image.size.width;

//            CGFloat btnRatio = CGRectGetHeight(_sort_btn.frame)/CGRectGetWidth(_sort_btn.frame);

//            UIImage* thumbImage = nil;

//            if (ratio > btnRatio)

//            {

//                //如果图片过高,去掉图片纵向的收尾部分

//                thumbImage = [image croppedImage: CGRectMake(0, image.size.width*(ratio - btnRatio)/2, image.size.width, image.size.width*btnRatio)];

//            }

//            else

//            {

//                //如果图片过宽,去掉横向的收尾部分

//                thumbImage = [image croppedImage: CGRectMake((image.size.width - image.size.height/btnRatio)/2, 0, image.size.height/btnRatio, image.size.height)];

//            }

//            

//            dispatch_async(dispatch_get_main_queue(), ^{

//            

//                if (thumbImage.size.width < _sort_btn.frame.size.width)

//                {

//                    [_sort_btn setImage: [thumbImage resizedImage:_sort_btn.frame.size interpolationQuality:kCGInterpolationHigh] forState:UIControlStateNormal];

//                }

//                else

//                {

//                    [_sort_btn setImage: thumbImage forState:UIControlStateNormal];

//                }

//            });

//

//        }

//        else

//        {

//            dispatch_async(dispatch_get_main_queue(), ^{

//                __weak UIButton* _weakBtn = _sort_btn;

//                [_sort_btn setImageWithURL:[NSURL URLWithString:sort.sortImage] forState:UIControlStateNormal completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) {

//                    

//                    if (_weakBtn && !error && image) {

//                        CGFloat ratio = image.size.height/image.size.width;

//                        CGFloat btnRatio = CGRectGetHeight(_weakBtn.frame)/CGRectGetWidth(_weakBtn.frame);

//                        UIImage* thumbImage = nil;

//                        if (ratio > btnRatio)

//                        {

//                            //如果图片过高,去掉图片纵向的收尾部分

//                            thumbImage = [image croppedImage: CGRectMake(0, image.size.width*(ratio - btnRatio)/2, image.size.width, image.size.width*btnRatio)];

//                        }

//                        else

//                        {

//                            //如果图片过宽,去掉横向的收尾部分

//                            thumbImage = [image croppedImage: CGRectMake((image.size.width - image.size.height/btnRatio)/2, 0, image.size.height/btnRatio, image.size.height)];

//                        }

//                        

//                      

//                        dispatch_async(dispatch_get_main_queue(), ^{

//                        

//                            if (thumbImage.size.width < _weakBtn.frame.size.width)

//                            {

//                                [_weakBtn setImage: [thumbImage resizedImage:_weakBtn.frame.size interpolationQuality:kCGInterpolationHigh] forState:UIControlStateNormal];

//                            }

//                            else

//                            {

//                                [_weakBtn setImage: thumbImage forState:UIControlStateNormal];

//                            }

//                        });

//                        

//                    }

//                }];

//            });

//        }

//        

//    });

//    






   dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

        BOOL isExist = [[SDWebImageManager sharedManager].imageCache diskImageExistsWithKey:sort.sortImage];

        if (isExist)

        {

            UIImage* image = [[SDWebImageManager sharedManager].imageCache imageFromDiskCacheForKey: sort.sortImage];

            

            float h = 0;

            UIImage *_wimg;

            if (image.size.height >= image.size.width) {

                h = (image.size.height - image.size.width)/2;

                _wimg = [image croppedImage:CGRectMake(0, h, image.size.width, image.size.width)];

            }else{

                h = (image.size.width - image.size.height)/2;

                _wimg = [image croppedImage:CGRectMake(h, 0, image.size.height, image.size.height)];

            }

            

            dispatch_async(dispatch_get_main_queue(), ^{

                UIImage *tmpImage = [JSAvatarImageFactory avatarImage:_wimg croppedToCircle:YES];

                _wPicImageView.image = tmpImage;

            });

        }

        else

        {

            dispatch_async(dispatch_get_main_queue(), ^{

                [_picImageView setImageWithURL:[NSURL URLWithString:sort.sortImage] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) {

                    

                    float h = 0;

                    UIImage *img;

                    if (image.size.height >= image.size.width) {

                        h = (image.size.height - image.size.width)/2;

                        img = [image croppedImage:CGRectMake(0, h, image.size.width, image.size.width)];

                    }else{

                        h = (image.size.width - image.size.height)/2;

                        img = [image croppedImage:CGRectMake(h, 0, image.size.height, image.size.height)];

                    }

                    UIImage *tmpImage = [JSAvatarImageFactory avatarImage:img croppedToCircle:YES];

                    _wPicImageView.image = tmpImage;

                    

                }];

            });

        }

        

    });





深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值