在我的项目中,如果用户点击图像,我将获得具有图像文件名的路径。我需要在iPhone的默认图像查看器中打开图像。
提前致谢
答案 0 :(得分:1)
我在我的一个项目中使用过QLPreviewController。我认为这是最容易实施的选择。此外,我不知道这是你正在寻找的解决方案。
我使用以下代码
创建了它Class qlookclass = NSClassFromString(@"QLPreviewController");
if(qlookclass){
//check if the image exists
if([[NSFileManager defaultManager] fileExistsAtPath:@"someimage.png"]){
id quickLookPreview = [[qlookclass alloc]init];
[quickLookPreview setDataSource:self];
[self presentModalViewController:quickLookPreview animated:YES];
[quickLookPreview release];
}
}
这些是委托方法
#pragma mark QLPreviewController delegate methods
- (NSInteger) numberOfPreviewItemsInPreviewController: (QLPreviewController *) controller {
return 1;
}
- (id <QLPreviewItem>) previewController: (QLPreviewController *) controller previewItemAtIndex: (NSInteger) index {
NSURL *imageURL = [NSURL fileURLWithPath:@"someimage.png"];
return imageURL;
}
您需要添加QLPreviewControllerDelegate和QLPreviewControllerDataSource。
这个问题已经是一个公认的答案 is there a class to get the default picture viewer in an app?
希望它有所帮助...
答案 1 :(得分:0)
检查此问题并回答Get the last saved Photo in photo album
如果您的图像未保存在照片中,请先使用
保存图像UIImageWriteToSavedPhotosAlbum(UIImage *image,
id completionTarget,
SEL completionSelector,
void *contextInfo);
https://stackoverflow.com/a/179066/3976183
或者您可以使用photos-redirect://
网址计划,它适用于Photo应用。
或者您可以使用UIImagePickerController
答案 2 :(得分:0)
您可以使用图库或实施自己的图库。
只需google它,你就会发现许多适用于iOS的图库项目,你也可以从中学习如何创建一个。
答案 3 :(得分:0)
有多种方法可以在默认视图中查看图像。
openssl s_client -starttls smtp -connect smtp.gmail.com:587
另一种方式是:
void main ()
{
int err;
int sd;
struct sockaddr_in sa;
SSL_CTX* ctx;
SSL* ssl;
X509* server_cert;
char* str;
const SSL_METHOD *meth;
WSADATA wsaData;
if(WSAStartup(MAKEWORD(2,2),&wsaData) != 0){
printf("WSAStartup()fail:%d\n",GetLastError());
return -1;
}
SSL_library_init();
SSL_load_error_strings();
meth = TLSv1_2_client_method();
ctx = SSL_CTX_new (meth);
CHK_NULL(ctx);
// begin win socket ..............................
printf("Begin tcp socket...\n");
sd = socket (AF_INET, SOCK_STREAM, 0); CHK_ERR(sd, "socket");
memset (&sa, 0, sizeof(sa));
sa.sin_family = AF_INET;
sa.sin_addr.s_addr = inet_addr (SERVER_ADDR); /* Server IP */
sa.sin_port = htons (PORT); /* Server Port number */
err = connect(sd, (struct sockaddr*) &sa, sizeof(sa));
if( sd == SOCKET_ERROR ) {
std::cout<<"connect error."<<std::endl;
return -1;
}
/* SSl negotiation .................. */
printf("Begin SSL negotiation \n");
ssl = SSL_new (ctx);
CHK_NULL(ssl);
SSL_set_fd (ssl, sd);
//ssl connect error here????
//What's wrong
err = SSL_connect (ssl);
if (err == -1)
{
ERR_print_errors_fp(stderr);
}
}