如题请大家帮助,谢谢 |
|
5分 |
UIImage转成NSData,再利用base64编码转成字符串
加上一个定义结构体或是类 typedef struct { NSString *yourStr; NSString *imgBase64; } yourStructName; 不知是不是你想要的答案? |
非常感谢你的回答,你是把图片转成字符串了 我的意识是如何把一个定义的字符串合成到一张已有的图片上? |
|
5分 |
先把image画到屏幕,再把字符串画到屏幕上,然后再保存
[self setNeedsDisplay];//用这个方法,系统会执行下面的方法 – (void) drawRect: (CGRect) rect { if (!self.points) return; if (self.points.count < 2) return; CGContextRef context = UIGraphicsGetCurrentContext(); // NSString *tstr = @”test”; UIImage * img = [UIImage imageWithContentsOfFile:path]; NSString*tstr1 = @”1111111111111111111111″; |
你的意思是用抓屏得方式来实现?对吧! |
|
5分 |
不明白楼主出于什么目的而做这个的,拼是可以拼,但UIImage二进制拼上NSString,那么这个就不是图片了,而是你自定义的一种数据格式,用图片预览是看不出来图片的。
无非就是为了保存数据。。。。何必搞得那么麻烦呢。写入不方便,读取出来也不方便。 |
需求是这样的,手机拍照然后把时间融合到图片上,在把融合了时间的图片发到服务端 |
|
明显楼主的思路开始就是错误的了,手机拍照的时间,相机类型等的数据已以在拍照时自动写入图片了,只要在服务器那边读取这张照片的属性(EXIF、TIFF信息)就可以了。至于服务器是用什么语言实现的,就要根据具体的语言去读取。
这是object c 实现的例子代码: NSData *imageData = [NSData dataWithContentsOfFile:imagePath];CGImageSourceRef source = CGImageSourceCreateWithData((CFDataRef)imageData, NULL); NSDictionary *metaData = (NSDictionary *)CGImageSourceCopyPropertiesAtIndex(source,0,NULL);NSDictionary *exifData = [metaData objectForKey:@"{Exif}"];NSDictionary *tiffData = [metaData objectForKey:@"{TIFF}"]; 这是我读取图片显示出来的JSON信息分别是EXIF TIFF信息, "photoFlow" : [ { "ExposureTime" : 0.01666667, "MaxApertureValue" : 2.96875, "Flash" : 89, "ColorSpace" : 1, "ExifVersion" : [ 2, 2 ], "FocalPlaneYResolution" : 7245.283, "FocalPlaneResolutionUnit" : 2, "ShutterSpeedValue" : 5.90625, "FocalLength" : 7.3, "CompressedBitsPerPixel" : 2, "FNumber" : 2.8, "SceneCaptureType" : 0, "PixelYDimension" : 1, "ApertureValue" : 2.96875, "PixelXDimension" : 1, "CustomRendered" : 0, "WhiteBalance" : 0, "DateTimeDigitized" : "2008:08:23 22:15:01", "SensingMethod" : 2, "DateTimeOriginal" : "2008:08:23 22:15:01", "MeteringMode" : 5, "FlashPixVersion" : [ 1, 0 ], "ComponentsConfiguration" : [ 1, 2, 3, 0 ], "ExposureMode" : 0, "DigitalZoomRatio" : 1, "ExposureBiasValue" : 0, "FocalPlaneXResolution" : 7236.749 }, { "Model" : "Canon PowerShot A610", "_YCbCrPositioning" : 1, "ResolutionUnit" : 2, "YResolution" : 180, "XResolution" : 180, "Orientation" : 1, "DateTime" : "2008:08:23 22:15:01", "Make" : "Canon" } ], |
|
5分 |
先把image画到屏幕,再把字符串画到屏幕上,然后再保存
正解 |
我的目的是想把时间融合到照片上! |
|
5分 |
佳能一直在搞这个似乎,有失真,楼主要有思想准备。
基本做法是jpeg转成中间存储格式,在Windows上可以是bitmap,然后在bitmap上用画图函数写时间,之后再转换成jpeg。 jpeg库是现成的,到网上找找官方的,是用c语言写的。 |
5分 |
LZ是想在图片上加时间水印,你理解错了。
|
5分 |
直接合并的算法貌似没有公开的,这个需要¥ |
对 我就是想在图片上加时间水印,头痛真得没有思路来实现,希望大家给点建议 |
|
5分 |
求救 彭佳乐 |