Skip to content
This repository was archived by the owner on Feb 22, 2023. It is now read-only.

Commit b717d0c

Browse files
committed
image_picker add original name to prefix
1 parent f4c3207 commit b717d0c

3 files changed

Lines changed: 24 additions & 37 deletions

File tree

packages/image_picker/image_picker_android/android/src/main/java/io/flutter/plugins/imagepicker/ExifDataCopier.java

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,6 @@
1010
import java.util.List;
1111

1212
class ExifDataCopier {
13-
static void setImageDescription(String filePathOri, String imageDescription) {
14-
try {
15-
ExifInterface exif = new ExifInterface(filePathOri);
16-
exif.setAttribute("ImageDescription", imageDescription);
17-
exif.saveAttributes();
18-
} catch (Exception ex) {
19-
Log.e("ExifDataCopier", "Error setImageDescription: " + ex);
20-
}
21-
}
22-
2313
void copyExif(String filePathOri, String filePathDest) {
2414
try {
2515
ExifInterface oldExif = new ExifInterface(filePathOri);

packages/image_picker/image_picker_android/android/src/main/java/io/flutter/plugins/imagepicker/FileUtils.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,16 +46,12 @@ String getPathFromUri(final Context context, final Uri uri) {
4646
String extension = getImageExtension(context, uri);
4747
String originFileName = getImageOriginalName(context, uri);
4848
inputStream = context.getContentResolver().openInputStream(uri);
49-
file = File.createTempFile("image_picker", extension, context.getCacheDir());
49+
file = File.createTempFile(originFileName + "_image_picker_", extension, context.getCacheDir());
5050
file.deleteOnExit();
5151
outputStream = new FileOutputStream(file);
5252
if (inputStream != null) {
5353
copy(inputStream, outputStream);
5454
success = true;
55-
56-
if(originFileName != null) {
57-
ExifDataCopier.setImageDescription(file.getPath(), originFileName);
58-
}
5955
}
6056
} catch (IOException ignored) {
6157
} finally {

packages/image_picker/image_picker_ios/ios/Classes/FLTImagePickerPhotoAssetUtil.m

Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -48,38 +48,29 @@ + (NSString *)saveImageWithOriginalImageData:(NSData *)originalImageData
4848
originalFileName:(NSString *)originalFileName {
4949
NSString *suffix = kFLTImagePickerDefaultSuffix;
5050
FLTImagePickerMIMEType type = kFLTImagePickerMIMETypeDefault;
51-
NSMutableDictionary *metaData = [NSMutableDictionary dictionary];
51+
NSDictionary *metaData;
5252

5353
// Getting the image type from the original image data if necessary.
5454
if (originalImageData) {
5555
type = [FLTImagePickerMetaDataUtil getImageMIMETypeFromImageData:originalImageData];
5656
suffix =
5757
[FLTImagePickerMetaDataUtil imageTypeSuffixFromType:type] ?: kFLTImagePickerDefaultSuffix;
58-
NSDictionary *imageMetaData = [FLTImagePickerMetaDataUtil getMetaDataFromImageData:originalImageData];
59-
if(imageMetaData) {
60-
[metaData addEntriesFromDictionary:imageMetaData];
61-
}
58+
metaData = [FLTImagePickerMetaDataUtil getMetaDataFromImageData:originalImageData];
6259
}
6360

6461
if (type == FLTImagePickerMIMETypeGIF) {
6562
GIFInfo *gifInfo = [FLTImagePickerImageUtil scaledGIFImage:originalImageData
6663
maxWidth:maxWidth
6764
maxHeight:maxHeight];
6865

69-
return [self saveImageWithMetaData:metaData gifInfo:gifInfo suffix:suffix];
66+
return [self saveImageWithMetaData:metaData
67+
gifInfo:gifInfo
68+
prefix:originalFileName
69+
suffix:suffix];
7070
} else {
71-
if(originalFileName) {
72-
NSMutableDictionary *tiff = [metaData[@"{TIFF}"] mutableCopy];
73-
if(!tiff) {
74-
tiff = [NSMutableDictionary dictionary];
75-
}
76-
77-
tiff[@"ImageDescription"] = originalFileName;
78-
metaData[@"{TIFF}"] = tiff;
79-
}
80-
8171
return [self saveImageWithMetaData:metaData
8272
image:image
73+
prefix:originalFileName
8374
suffix:suffix
8475
type:type
8576
imageQuality:imageQuality];
@@ -92,20 +83,23 @@ + (NSString *)saveImageWithPickerInfo:(nullable NSDictionary *)info
9283
NSDictionary *metaData = info[UIImagePickerControllerMediaMetadata];
9384
return [self saveImageWithMetaData:metaData
9485
image:image
86+
prefix:nil
9587
suffix:kFLTImagePickerDefaultSuffix
9688
type:kFLTImagePickerMIMETypeDefault
9789
imageQuality:imageQuality];
9890
}
9991

10092
+ (NSString *)saveImageWithMetaData:(NSDictionary *)metaData
10193
gifInfo:(GIFInfo *)gifInfo
94+
prefix:(NSString *)prefix
10295
suffix:(NSString *)suffix {
103-
NSString *path = [self temporaryFilePath:suffix];
96+
NSString *path = [self temporaryFilePath:prefix suffix:suffix];
10497
return [self saveImageWithMetaData:metaData gifInfo:gifInfo path:path];
10598
}
10699

107100
+ (NSString *)saveImageWithMetaData:(NSDictionary *)metaData
108101
image:(UIImage *)image
102+
prefix:(NSString *)prefix
109103
suffix:(NSString *)suffix
110104
type:(FLTImagePickerMIMEType)type
111105
imageQuality:(NSNumber *)imageQuality {
@@ -120,7 +114,7 @@ + (NSString *)saveImageWithMetaData:(NSDictionary *)metaData
120114
}
121115
}
122116

123-
return [self createFile:data suffix:suffix];
117+
return [self createFile:data prefix:prefix suffix:suffix];
124118
}
125119

126120
+ (NSString *)saveImageWithMetaData:(NSDictionary *)metaData
@@ -157,17 +151,24 @@ + (NSString *)saveImageWithMetaData:(NSDictionary *)metaData
157151
return path;
158152
}
159153

160-
+ (NSString *)temporaryFilePath:(NSString *)suffix {
154+
+ (NSString *)temporaryFilePath: (NSString*) prefix suffix:(NSString *)suffix {
155+
if(!prefix) {
156+
prefix = @"";
157+
}
158+
161159
NSString *fileExtension = [@"image_picker_%@" stringByAppendingString:suffix];
160+
if(prefix) {
161+
fileExtension = [NSString stringWithFormat:@"%@_%@", prefix, fileExtension];
162+
}
162163
NSString *guid = [[NSProcessInfo processInfo] globallyUniqueString];
163-
NSString *tmpFile = [NSString stringWithFormat:fileExtension, guid];
164+
NSString *tmpFile = [NSString stringWithFormat:fileExtension, prefix, guid];
164165
NSString *tmpDirectory = NSTemporaryDirectory();
165166
NSString *tmpPath = [tmpDirectory stringByAppendingPathComponent:tmpFile];
166167
return tmpPath;
167168
}
168169

169-
+ (NSString *)createFile:(NSData *)data suffix:(NSString *)suffix {
170-
NSString *tmpPath = [self temporaryFilePath:suffix];
170+
+ (NSString *)createFile:(NSData *)data prefix: (NSString *) prefix suffix:(NSString *)suffix {
171+
NSString *tmpPath = [self temporaryFilePath:prefix suffix:suffix];
171172
if ([[NSFileManager defaultManager] createFileAtPath:tmpPath contents:data attributes:nil]) {
172173
return tmpPath;
173174
} else {

0 commit comments

Comments
 (0)