1.先修改键盘上的工具栏
3.上传服务器的相关操作
下面的方法是将富文本转换成纯文本的信息
以上是转换成纯文本,然后拼接上url操作,可以选择性忽略。
4.NSTextAttachment 延展,为NSTextAttachment添加一个属性(关键操作)
iOS 11支持GIF文件了。那么怎么上传自己想要的GIF图片呢,
1.调用相册:UIImagePickerController 拿到代理返回的info数组。
2,最重要的一步,转为NSData(一般服务器以data 上传),用系统#import <Photos/Photos.h>
如果是iOS 11 以前,则可以用<AssetsLibrary/AssetsLibrary.h>
-( void )tranUpLoadImageGifWithImage:(NSDictionary<NSString *, id >*)info{
// 上传gif
//转为NSData
if ( @available (iOS11.0, *)) {
PHAsset *phAss = [info valueForKey:UIImagePickerControllerPHAsset]
PHImageRequestOptions *options = [PHImageRequestOptions new]
options.resizeMode = PHImageRequestOptionsResizeModeFast
options.synchronous= YES
PHCachingImageManager *mager = [[PHCachingImageManager alloc]init] [magerrequestImageDataForAsset:phAssoptions:optionsresultHandler:^(NSData* _Nullable imageData,NSString* _Nullable dataUTI,UIImageOrientationorientation,NSDictionary* _Nullable info) {
NSLog(@"能拿到:%@",imageData)
//上传服务器的方法
[ self upLoadImageData:imageData]
}]
} else {
// Fallback on earlier versions
}
}
3. 拿到NSData,就能上传服务器啦
-( void )upLoadImageData:(NSData*)data{
自己服务器上传地址
NSString*urlString = [NSStringstringWithFormat:@"%@",BASE_URL]
NSDictionary *params = @{@"image_model":@"1"}
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]
[ProgressHUD showLoading]
[managerPOST:urlStringparameters:paramsheaders: nil constructingBodyWithBlock:^( id _Nonnull formData) {
NSString*str =@"image_file"
NSString*fileName
// 上传图片,以文件流的格式
/**
*filedata : 图片的data
*name : 后台的提供的字段
*mimeType : 类型
*/
fileName = [NSStringstringWithFormat:@"%@.gif", str]
[formDataappendPartWithFileData:dataname:strfileName:fileNamemimeType:@"image/gif"]
}progress: NULL success:^(NSURLSessionDataTask* _Nonnull task, id _Nullable responseObject) {
[ProgressHUDdismiss]
//打印看下返回的是什么东西
NSLog(@"上传图片成功:%@",responseObject)
[ProgressHUDshow:@"图片上传成功!"]
}failure:^(NSURLSessionDataTask* _Nullable task,NSError* _Nonnull error) {
[ProgressHUDdismiss]
[ProgressHUDshow:@"图片上传失败!"]
NSLog(@"上传图片失败,失败原因是:%@", error)
}]
}
ios上传图片到服务器,渲染到页面上之后会旋转90度,android显示正常。
ios相机加入了方向传感器,能够记录相机拍摄的方向,这些信息保存在照片中,当相机浏览这些照片的时候,相机可以根据照片中的方向信息,结合此时相机的方向,对照片进行旋转
iOS拍摄的图片提供了EXIF(可交换图像文件格式:Exchangeable image file format)信息,Orientation 旋转信息等存储在其中。
判断是否有旋转:
上传到七牛云上的路径 拼接上 + ''?imageInfo"
如果有旋转返回数据
{"size":2645332,"format":"jpeg","width":4032,"height":3024,"colorModel":"ycbcr","orientation":"Right-top"}
没有旋转返回数据
{"size":371939,"format":"png","width":375,"height":1078,"colorModel":"rgba"}
很显然: 有orientation说明有旋转问题
让图片不旋转:图片路径后面拼接 + "?imageMogr2/auto-orient"(可以不判断是否有旋转信息,直接将所有的图片拼接上,简单粗暴)
读取照片的 Exif 信息,判断 Orientation 的值,然后将图片进行相应的旋转
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)