我希望以NSData对象的形式直接使用ALAssetsLibrary和ALAsset提取图像.
使用NSURL我以下列方式取出图像.
NSURL *referenceURL =newURL;
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library assetForURL:referenceURL resultBlock:^(ALAsset *asset)
{
UIImage *copyOfOriginalImage = [UIImage imageWithCGImage:[[asset defaultRepresentation] fullResolutionImage]];
}
Run Code Online (Sandbox Code Playgroud)
现在我们将图像作为UIImage,但我需要将图像直接作为NSData.
我希望这样做是因为(我已经读过)一旦你在UIImage中拍摄图像,那么我们就会丢失图像的所有EXIF细节.
这就是我想直接将图像提取为NSData的原因,而不是这样做
NSData *webUploadData=UIImageJPEGRepresentation(copyOfOriginalImage, 0.5);
Run Code Online (Sandbox Code Playgroud)
这一步让我失去了所有的EXIF细节.
请帮忙.
下面提到的是我的XML,
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelopexmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<Response xmlns="http://tempuri.org/">
<Result>
<mp_response>
<data signature="something">
<outcome errorcode="0" errordescription="" errorsolution=""/>
something
</data>
</mp_response>
</Result>
</Response>
</soap:Body>
</soap:Envelope>
Run Code Online (Sandbox Code Playgroud)
我希望从这个XML中提取"错误代码".我怎么想这样做?请帮忙.
我需要解析XML.问题是XML是阿拉伯语的.
例如:
<?xml version="1.0"?>
<ROWSET>
<ROW>
<???>1</???>
<???>20111</???>
<???>0</???>
<????>0</????>
<?????>0</?????>
<?????4>0</?????4>
</ROW>
<ROW>
<???>10</???>
<???>20111</???>
<???>0</???>
<????>0</????>
<?????>0</?????>
<?????4>0</?????4>
</ROW>
<ROW>
<???>11</???>
<???>20111</???>
<???>0</???>
<????>0</????>
<?????>0</?????>
<?????4>0</?????4>
</ROW>
<ROW>
<???>12</???>
<???>20111</???>
<???>0</???>
<????>0</????>
<?????>0</?????>
<?????4>0</?????4>
</ROW>
</ROWSET>
Run Code Online (Sandbox Code Playgroud)
添加到它,首先是结束标记,然后是开始标记.
我想开发一个Android应用程序,这将给我我旅行的速度.请向我推荐一些我可以从中获得帮助的网站.
我知道有一个像Location.getSpeed()这样的函数.但不知道它究竟是如何工作的.
我希望在一定的时间间隔后关闭后台应用程序.基本上我希望维持用户会话.会话可以持续5到10分钟.
是否可以使用UIImagePickerControllerReferenceURL在UIImageView上设置图像.传统模式使用[info objectForKey:@"UIImagePickerControllerOriginalImage"];
I tried this:
Run Code Online (Sandbox Code Playgroud)
theImageView.image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[info objectForKey:UIImagePickerControllerReferenceURL]]];
但是在UIImageView上没有设置图像.
请帮忙 .
我期待我的应用程序中同时有 json 和 xml 响应。Retrofit 2.0 允许您针对此类情况添加多个转换器工厂。
但似乎顺序在这里至关重要。在 SimpleXmlConverterFactory 之上添加 JacksonConverterFactory 使得 Retrofit 仅接受 Json 响应,并在遇到 XML 时抛出异常,反之亦然。
下面是如何向您的 Retrofit Builder 添加多个 addConverterFactory 的代码片段。
.addConverterFactory(JacksonConverterFactory.create(objectMapper))
.addConverterFactory(SimpleXmlConverterFactory.create())
Run Code Online (Sandbox Code Playgroud)
<<<编辑
将上面的代码改成这样,还是不行:
return new Retrofit.Builder()
.client(clientBuilder.build())
.baseUrl(BuildConfig.API_ENDPOINT)
.addCallAdapterFactory(unAuthorizedHandlingCallAdapterFactory)
.addCallAdapterFactory(RxErrorHandlingCallAdapterFactory.create())
.addConverterFactory(new QualifiedTypeConverterFactory(JacksonConverterFactory.create(objectMapper), SimpleXmlConverterFactory.create()))
.build();
Run Code Online (Sandbox Code Playgroud)
编辑2
添加响应类型是关键 @GET("/") @Xml
我希望在将图像存储为NSData
对象之前压缩图像.
下面是代码,它可以帮助我获取NSData
Image的对象.
NSURL *referenceURL = [info objectForKey:UIImagePickerControllerReferenceURL];
ALAssetsLibrary *library1 = [[ALAssetsLibrary alloc] init];
[library1 assetForURL:referenceURL resultBlock:^(ALAsset *asset)
{
int byteArraySize = asset.defaultRepresentation.size;
NSMutableData* rawData = [[NSMutableData alloc]initWithCapacity:byteArraySize];
void* bufferPointer = [rawData mutableBytes];
NSError* error=nil;
[asset.defaultRepresentation getBytes:bufferPointer fromOffset:0 length:byteArraySize error:&error];
if (error) {
NSLog(@"%@",error);
}
rawData = [NSMutableData dataWithBytes:bufferPointer length:byteArraySize];
}
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激.
android ×3
iphone ×3
nsdata ×2
parsing ×2
uiimageview ×2
xml-parsing ×2
arabic ×1
blackberry ×1
compression ×1
exif ×1
image ×1
java-me ×1
jsonparser ×1
jsr172 ×1
retrofit2 ×1
session ×1
symbian ×1
uiimage ×1