Commit 11f928f7 authored by 林生雨's avatar 林生雨

commit

parent 5d3d676a
......@@ -7,7 +7,9 @@
<component name="ChangeListManager">
<list default="true" id="5be6bbb5-7d6e-4540-a24f-d2b3bf78b3ba" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/android/.idea/caches/build_file_checksums.ser" beforeDir="false" afterPath="$PROJECT_DIR$/android/.idea/caches/build_file_checksums.ser" afterDir="false" />
<change beforePath="$PROJECT_DIR$/example/ios/.symlinks/plugins/gengmei_flutter_plugin/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/example/ios/.symlinks/plugins/gengmei_flutter_plugin/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/example/ios/.symlinks/plugins/gengmei_flutter_plugin/ios/Classes/GengmeiFlutterPlugin.m" beforeDir="false" afterPath="$PROJECT_DIR$/example/ios/.symlinks/plugins/gengmei_flutter_plugin/ios/Classes/GengmeiFlutterPlugin.m" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ios/Classes/GengmeiFlutterPlugin.m" beforeDir="false" afterPath="$PROJECT_DIR$/ios/Classes/GengmeiFlutterPlugin.m" afterDir="false" />
</list>
<ignored path="$PROJECT_DIR$/.dart_tool/" />
......@@ -28,9 +30,13 @@
<component name="ExecutionTargetManager" SELECTED_TARGET="AKC0218316000622" />
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/example/android/app/app.iml">
<provider selected="true" editor-type-id="text-editor" />
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/android/src/main/java/com/example/gengmei_flutter_plugin/GengmeiFlutterPlugin.kt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="611">
<caret line="238" column="5" lean-forward="true" selection-start-line="238" selection-start-column="5" selection-end-line="238" selection-end-column="5" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
......@@ -62,34 +68,41 @@
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="true">
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/ios/Classes/GengmeiFlutterPlugin.m">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="245">
<caret line="13" column="4" selection-start-line="13" selection-start-column="4" selection-end-line="13" selection-end-column="4" />
<state relative-caret-position="267">
<caret line="14" column="4" selection-start-line="14" selection-start-column="4" selection-end-line="14" selection-end-column="4" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/.packages">
<provider selected="true" editor-type-id="text-editor" />
<entry file="file://$PROJECT_DIR$/lib/ScanImagePlugn.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="308">
<caret line="17" column="47" selection-start-line="17" selection-start-column="39" selection-end-line="17" selection-end-column="47" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/android/src/main/AndroidManifest.xml">
<entry file="file://$PROJECT_DIR$/lib/gengmei_flutter_plugin.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="264">
<caret line="12" column="11" selection-start-line="12" selection-start-column="11" selection-end-line="12" selection-end-column="11" />
<state relative-caret-position="330">
<caret line="15" column="47" selection-start-line="15" selection-start-column="47" selection-end-line="15" selection-end-column="47" />
<folding>
<element signature="e#0#20#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/pubspec.yaml">
<entry file="file://$PROJECT_DIR$/lib/SharedPlugin.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="44">
<caret line="2" column="9" selection-start-line="2" selection-start-column="9" selection-end-line="2" selection-end-column="16" />
<state relative-caret-position="1184">
<caret line="76" column="75" selection-start-line="76" selection-start-column="75" selection-end-line="76" selection-end-column="75" />
</state>
</provider>
</entry>
......@@ -143,8 +156,8 @@
</list>
</option>
</component>
<component name="ProjectFrameBounds">
<option name="x" value="523" />
<component name="ProjectFrameBounds" extendedState="6">
<option name="x" value="329" />
<option name="y" value="-1080" />
<option name="width" value="1920" />
<option name="height" value="1080" />
......@@ -162,6 +175,24 @@
<item name="gengmei_flutter_plugin" type="b2602c69:ProjectViewProjectNode" />
<item name="gengmei_flutter_plugin" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="gengmei_flutter_plugin" type="b2602c69:ProjectViewProjectNode" />
<item name="gengmei_flutter_plugin" type="462c0819:PsiDirectoryNode" />
<item name="android" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="gengmei_flutter_plugin" type="b2602c69:ProjectViewProjectNode" />
<item name="gengmei_flutter_plugin" type="462c0819:PsiDirectoryNode" />
<item name="android" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="gengmei_flutter_plugin" type="b2602c69:ProjectViewProjectNode" />
<item name="gengmei_flutter_plugin" type="462c0819:PsiDirectoryNode" />
<item name="android" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="gengmei_flutter_plugin" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="gengmei_flutter_plugin" type="b2602c69:ProjectViewProjectNode" />
<item name="gengmei_flutter_plugin" type="462c0819:PsiDirectoryNode" />
......@@ -180,6 +211,11 @@
<item name="Classes" type="462c0819:PsiDirectoryNode" />
<item name="Image" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="gengmei_flutter_plugin" type="b2602c69:ProjectViewProjectNode" />
<item name="gengmei_flutter_plugin" type="462c0819:PsiDirectoryNode" />
<item name="lib" type="462c0819:PsiDirectoryNode" />
</path>
</expand>
<select />
</subPane>
......@@ -232,7 +268,7 @@
<servers />
</component>
<component name="ToolWindowManager">
<frame x="523" y="-1080" width="1920" height="1080" extended-state="0" />
<frame x="-41" y="-1080" width="1920" height="1080" extended-state="6" />
<layout>
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.16986156" />
<window_info id="Captures" order="1" side_tool="true" />
......@@ -253,7 +289,7 @@
<window_info anchor="bottom" id="Event Log" order="7" side_tool="true" />
<window_info anchor="bottom" id="Flutter Performance" order="8" side_tool="true" />
<window_info anchor="bottom" id="Version Control" order="9" />
<window_info anchor="bottom" id="Messages" order="10" visible="true" weight="0.3451417" />
<window_info anchor="bottom" id="Messages" order="10" weight="0.3451417" />
<window_info anchor="right" id="Device File Explorer" order="0" side_tool="true" weight="0.32960597" />
<window_info anchor="right" id="Capture Analysis" order="1" />
<window_info anchor="right" id="Theme Preview" order="2" />
......@@ -265,13 +301,6 @@
</layout>
</component>
<component name="editorHistoryManager">
<entry file="file://$USER_HOME$/Downloads/flutter/bin/cache/pkg/sky_engine/lib/io/file_system_entity.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-125">
<caret line="256" column="31" selection-start-line="256" selection-start-column="15" selection-end-line="256" selection-end-column="31" />
</state>
</provider>
</entry>
<entry file="file://$USER_HOME$/Downloads/flutter/bin/cache/pkg/sky_engine/lib/io/directory.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="265">
......@@ -357,13 +386,6 @@
<entry file="file://$PROJECT_DIR$/example/lib/AlbumModel/LiveData.dart">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/lib/ScanImagePlugn.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="858">
<caret line="42" selection-start-line="42" selection-end-line="42" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/example/lib/AlbumModel/bean/DirBean.dart">
<provider selected="true" editor-type-id="text-editor" />
</entry>
......@@ -378,16 +400,6 @@
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/android/src/main/kotlin/com/example/gengmei_flutter_plugin/sharedPrefernces/SharedManager.kt" />
<entry file="file://$PROJECT_DIR$/lib/gengmei_flutter_plugin.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="880">
<caret line="46" column="41" selection-start-line="46" selection-start-column="41" selection-end-line="46" selection-end-column="41" />
<folding>
<element signature="e#0#20#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/example/lib/AlbumModel/page/album/AlbumModel.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="4158">
......@@ -419,13 +431,6 @@
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/lib/A.dart" />
<entry file="file://$PROJECT_DIR$/lib/SharedPlugin.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1606">
<caret line="76" column="75" selection-start-line="76" selection-start-column="75" selection-end-line="76" selection-end-column="75" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/android/src/main/java/com/example/gengmei_flutter_plugin/a" />
<entry file="file://$PROJECT_DIR$/android/build.gradle">
<provider selected="true" editor-type-id="text-editor">
......@@ -502,8 +507,39 @@
</entry>
<entry file="file://$PROJECT_DIR$/ios/Classes/GengmeiFlutterPlugin.m">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="245">
<caret line="13" column="4" selection-start-line="13" selection-start-column="4" selection-end-line="13" selection-end-column="4" />
<state relative-caret-position="267">
<caret line="14" column="4" selection-start-line="14" selection-start-column="4" selection-end-line="14" selection-end-column="4" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/lib/ScanImagePlugn.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="308">
<caret line="17" column="47" selection-start-line="17" selection-start-column="39" selection-end-line="17" selection-end-column="47" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/lib/SharedPlugin.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1184">
<caret line="76" column="75" selection-start-line="76" selection-start-column="75" selection-end-line="76" selection-end-column="75" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/lib/gengmei_flutter_plugin.dart">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="330">
<caret line="15" column="47" selection-start-line="15" selection-start-column="47" selection-end-line="15" selection-end-column="47" />
<folding>
<element signature="e#0#20#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/android/src/main/java/com/example/gengmei_flutter_plugin/GengmeiFlutterPlugin.kt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="611">
<caret line="238" column="5" lean-forward="true" selection-start-line="238" selection-start-column="5" selection-end-line="238" selection-end-column="5" />
</state>
</provider>
</entry>
......
......@@ -4,10 +4,11 @@
#import "Image/AlbumItem.h"
#import "ResultManager.h"
@interface GengmeiFlutterPlugin ()<UIActionSheetDelegate,UIImagePickerControllerDelegate,UINavigationControllerDelegate> //一定要声明这三个协议,缺一不可
@interface GengmeiFlutterPlugin()<UIActionSheetDelegate,UIImagePickerControllerDelegate,UINavigationControllerDelegate,FlutterStreamHandler> //一定要声明这三个协议,缺一不可
//@property(nonatomic)FlutterResult result;
@property(atomic)int needSize;
@property(nonatomic)int nowSize;
@property(nonatomic)int tempSize;
@property(nonatomic) long resultKey;
@property(nonatomic)long nativeCameraKey;
@property(strong,nonatomic)NSMutableDictionary<NSString*,NSMutableArray<NSMutableDictionary<NSString*,NSObject*>*>*>* finalMap;
......@@ -16,11 +17,13 @@
@property(atomic)Boolean execdTask;
@end
@implementation GengmeiFlutterPlugin
@implementation GengmeiFlutterPlugin{}
NSMutableArray<AlbumItem *> *assetCollectionList;
UIViewController * viewController;
dispatch_queue_t queue;
NSObject<FlutterPluginRegistrar>* resign;
+ (void)registerWithRegistrar:(NSObject<FlutterPluginRegistrar>*)registrar {
resign=registrar;
FlutterMethodChannel* channel = [FlutterMethodChannel
methodChannelWithName:@"gengmei_flutter_plugin"
binaryMessenger:[registrar messenger]];
......@@ -29,8 +32,26 @@ dispatch_queue_t queue;
assetCollectionList = [NSMutableArray array];
viewController =[UIApplication sharedApplication].delegate.window.rootViewController;
queue = dispatch_queue_create("com.gengmei_flutter_plugin", DISPATCH_QUEUE_CONCURRENT);
FlutterEventChannel* chargingChannel = [FlutterEventChannel
eventChannelWithName:@"gengmei_flutter_plugin_event"
binaryMessenger:[resign messenger]];
[chargingChannel setStreamHandler:instance];
}
- (instancetype)init
{
self = [super init];
if (self) {
NSLog(@"INITT");
FlutterEventChannel* chargingChannel = [FlutterEventChannel
eventChannelWithName:@"gengmei_flutter_plugin_event"
binaryMessenger:[resign messenger]];
[chargingChannel setStreamHandler:self];
}
return self;
}
- (void)handleMethodCall:(FlutterMethodCall*)call result:(FlutterResult)result {
self.resultKey++;
[[ResultManager sharedSingleton] addResult:[NSNumber numberWithLong:self.resultKey] :result];
......@@ -314,17 +335,20 @@ dispatch_queue_t queue;
for (int i=0; i<[assetResult count]; i++) {
__block NSString* docName=[item collectionTitle];
PHAsset * assets=[assetResult objectAtIndex:i];
NSString * imgName=[assets valueForKey:@"filename"];
__block NSString * imgName=[assets valueForKey:@"filename"];
NSString * imgRealName=[NSString stringWithFormat:@"%@_REAL",imgName];
if (imgName==nil) {
NSLog(@"NEWWWW!!!!! image name is Null!!! ");
NSString *timeSp = [NSString stringWithFormat:@"%ld", (long)([[NSDate date] timeIntervalSince1970]*100000)];
imgName=[NSString stringWithFormat:@"IMG_%",timeSp];
imgName=[NSString stringWithFormat:@"IMG_%@",timeSp];
imgRealName=[NSString stringWithFormat:@"REAL_PATH_IMG_%@",timeSp];
}
__block NSString *tmpPath=[cacheDirectory stringByAppendingPathComponent:imgName];
if ([fileManager fileExistsAtPath:tmpPath]==YES){
__block NSString *realPath=[cacheDirectory stringByAppendingPathComponent:imgRealName];
if ([fileManager fileExistsAtPath:tmpPath]==YES&&[fileManager fileExistsAtPath:realPath]&&false){
self.nowSize++;
NSMutableDictionary* queryItemDict = [NSMutableDictionary dictionary];
[queryItemDict setObject:tmpPath forKey:@"path"];
[queryItemDict setObject:tmpPath forKey:@"realPath"];
NSMutableArray * arr=self.finalMap[docName];
if (arr==nil) {
self.finalMap[docName]=[NSMutableArray array];
......@@ -339,31 +363,42 @@ dispatch_queue_t queue;
}else{
NSLog(@"file NOT EXIT !! ");
PHImageRequestOptions *imageRequestOption = [[PHImageRequestOptions alloc] init];
imageRequestOption.synchronous =YES;
imageRequestOption.synchronous =NO;
int picWidth=[assets pixelWidth];
int picHeight=[assets pixelHeight];
float scareSize=1;
scareSize=340.0/picWidth;
NSLog(@"SCARESIZE %d",picWidth);
// NSLog(@"WIDTH %d %d",picWidth,picHeight);
// float scareSize=1;
float scareSize=1080.0/picWidth;
// NSLog(@"SCARESIZE %d",picWidth);
CGSize size=CGSizeMake(picWidth*scareSize, picHeight*scareSize);
float tempScareSize=320.0/picWidth;
CGSize temp=CGSizeMake(picWidth*tempScareSize, picHeight*tempScareSize);
imageRequestOption.networkAccessAllowed = YES;
imageRequestOption.deliveryMode=PHImageRequestOptionsDeliveryModeHighQualityFormat;
// imageRequestOption.deliveryMode=PHImageRequestOptionsDeliveryModeHighQualityFormat;
imageRequestOption.resizeMode=PHImageRequestOptionsResizeModeFast;
//PHImageManagerMaximumSize
PHImageRequestOptions *scareOpt = [[PHImageRequestOptions alloc] init];
scareOpt.networkAccessAllowed=YES;
scareOpt.deliveryMode=PHImageRequestOptionsDeliveryModeFastFormat;
scareOpt.synchronous =NO;
scareOpt.resizeMode=PHImageRequestOptionsResizeModeFast;
scareOpt.version=PHImageRequestOptionsVersionUnadjusted;
[[PHImageManager defaultManager] requestImageForAsset:assets targetSize:size contentMode:PHImageContentModeDefault options:imageRequestOption resultHandler:^(UIImage * _Nullable result, NSDictionary * _Nullable info) {
// NSLog(@"INITTT___))))00000 %d %d %@",i,[assetResult count],info);
// NSURL * url = [info objectForKey:@"PHImageFileURLKey"];
// UIImage *getImage = [UIImage imageWithContentsOfFile:file];
NSData *data;
if (UIImagePNGRepresentation(result) == nil){
data = UIImageJPEGRepresentation(result, 1);
} else {
data = UIImagePNGRepresentation(result);
}
if ([[NSFileManager defaultManager] createFileAtPath:tmpPath contents:data attributes:nil]) {
NSLog(@"result %@",tmpPath);
self.nowSize++;
// UIImageJPEGRepresentation(result,1)
[UIImageJPEGRepresentation(result,1) writeToFile:realPath atomically:YES];
[UIImageJPEGRepresentation([self image:result byScalingToSize:temp],0.8) writeToFile:realPath atomically:YES ];
NSMutableDictionary* queryItemDict = [NSMutableDictionary dictionary];
[queryItemDict setObject:tmpPath forKey:@"path"];
[queryItemDict setObject:imgName forKey:@"name"];
[queryItemDict setObject:realPath forKey:@"realPath"];
NSMutableArray * arr=self.finalMap[docName];
self.nowSize++;
if (arr==nil) {
self.finalMap[docName]=[NSMutableArray array];
[self.finalMap[docName] addObject:queryItemDict];
......@@ -375,16 +410,131 @@ dispatch_queue_t queue;
if (self.nowSize==self.needSize) {
[self resultImgs:resultId];
}
} else {
NSLog(@"ERRORRRR ");
self.needSize--;
}
// CFAbsoluteTime startTime =CFAbsoluteTimeGetCurrent();
// NSData * data=UIImageJPEGRepresentation(result,0.8);
// if(data==nil){
// NSLog(@"DATAISNULL");
// data=UIImagePNGRepresentation(result);
// }
// [data writeToFile:realPath atomically:YES];
// CFAbsoluteTime linkTime = (CFAbsoluteTimeGetCurrent() - startTime);
// NSLog(@"Linked in %f ms", linkTime *1000.0);
// UIImage * scareData=[self image:result byScalingToSize:size];
// [data writeToFile:realPath atomically:YES];
//
// if ([[NSFileManager defaultManager] createFileAtPath:realPath contents:data attributes:nil]){
//
// }
// UIImage * scareData=[self image:result byScalingToSize:size];
// NSData *data;
// if (UIImagePNGRepresentation(scareData) == nil){
// data = UIImageJPEGRepresentation(scareData, 1);
// } else {
// data = UIImagePNGRepresentation(scareData);
// }
// if ([[NSFileManager defaultManager] createFileAtPath:realPath contents:data attributes:nil]) {
// if ([[NSFileManager defaultManager] createFileAtPath:tmpPath contents:scareData attributes:nil]) {
// NSLog(@"result %@",tmpPath);
// self.nowSize++;
// NSMutableDictionary* queryItemDict = [NSMutableDictionary dictionary];
// [queryItemDict setObject:tmpPath forKey:@"path"];
// [queryItemDict setObject:realPath forKey:@"realPath"];
// NSMutableArray * arr=self.finalMap[docName];
// if (arr==nil) {
// self.finalMap[docName]=[NSMutableArray array];
// [self.finalMap[docName] addObject:queryItemDict];
// }else{
// [self.finalMap[docName] addObject:queryItemDict];
// }
// NSLog(@"SIZEEE %d %d ",self.nowSize,self.needSize);
// if (self.nowSize==self.needSize) {
// [self resultImgs:resultId];
// }
// }else{
// NSLog(@"ERRORRRR ");
// self.needSize--;
// }
// } else {
// NSLog(@"ERRORRRR ");
// self.needSize--;
// }
}];
}
}
}
}
- (UIImage *)image:(UIImage*)image byScalingToSize:(CGSize)targetSize {
UIImage *sourceImage = image;
UIImage *newImage = nil;
UIGraphicsBeginImageContext(targetSize);
CGRect thumbnailRect = CGRectZero;
thumbnailRect.origin = CGPointZero;
thumbnailRect.size.width = targetSize.width;
thumbnailRect.size.height = targetSize.height;
[sourceImage drawInRect:thumbnailRect];
newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage ;
}
-(NSData *)compressWithLengthLimit:(UIImage*) img max:(NSUInteger)maxLength{
// Compress by quality
CGFloat compression = 1;
NSData *data = UIImageJPEGRepresentation(img, compression);
//NSLog(@"Before compressing quality, image size = %ld KB",data.length/1024);
if (data.length < maxLength) return data;
CGFloat max = 1;
CGFloat min = 0;
for (int i = 0; i < 6; ++i) {
compression = (max + min) / 2;
data = UIImageJPEGRepresentation(img, compression);
//NSLog(@"Compression = %.1f", compression);
//NSLog(@"In compressing quality loop, image size = %ld KB", data.length / 1024);
if (data.length < maxLength * 0.9) {
min = compression;
} else if (data.length > maxLength) {
max = compression;
} else {
break;
}
}
//NSLog(@"After compressing quality, image size = %ld KB", data.length / 1024);
if (data.length < maxLength) return data;
UIImage *resultImage = [UIImage imageWithData:data];
// Compress by size
NSUInteger lastDataLength = 0;
while (data.length > maxLength && data.length != lastDataLength) {
lastDataLength = data.length;
CGFloat ratio = (CGFloat)maxLength / data.length;
//NSLog(@"Ratio = %.1f", ratio);
CGSize size = CGSizeMake((NSUInteger)(resultImage.size.width * sqrtf(ratio)),
(NSUInteger)(resultImage.size.height * sqrtf(ratio))); // Use NSUInteger to prevent white blank
UIGraphicsBeginImageContext(size);
[resultImage drawInRect:CGRectMake(0, 0, size.width, size.height)];
resultImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
data = UIImageJPEGRepresentation(resultImage, compression);
//NSLog(@"In compressing size loop, image size = %ld KB", data.length / 1024);
}
//NSLog(@"After compressing size loop, image size = %ld KB", data.length / 1024);
return data;
}
- (NSMutableDictionary*)useToFetchCollection {
NSMutableDictionary* queryItemDict = [NSMutableDictionary dictionary];
PHFetchResult<PHAssetCollection *> * collectionResult = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeMoment subtype:PHAssetCollectionSubtypeSmartAlbumFavorites options:nil];
......@@ -464,4 +614,18 @@ dispatch_queue_t queue;
        }
}
FlutterEventSink _eventSink;
- (FlutterError*)onListenWithArguments:(id)arguments eventSink:(FlutterEventSink)eventSink {
NSLog(@"QWEQWEQEW");
_eventSink = eventSink;
return nil;
}
- (FlutterError*)onCancelWithArguments:(id)arguments {
[[NSNotificationCenter defaultCenter] removeObserver:self];
_eventSink = nil;
NSLog(@"QWEQWEQEW");
return nil;
}
@end
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment