Browse Source

fix ios img orientation

dev
xmcp 6 years ago
parent
commit
4c8637af77
  1. 37
      package-lock.json
  2. 1
      package.json
  3. 4
      src/UserAction.css
  4. 22
      src/UserAction.js

37
package-lock.json generated

@ -3939,6 +3939,11 @@
"assert-plus": "^1.0.0" "assert-plus": "^1.0.0"
} }
}, },
"data-uri-to-u8": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/data-uri-to-u8/-/data-uri-to-u8-1.0.0.tgz",
"integrity": "sha1-Ilp58t07NQrY1iiem5yR2DX7jb4="
},
"data-urls": { "data-urls": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz", "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz",
@ -4990,6 +4995,11 @@
"strip-eof": "^1.0.0" "strip-eof": "^1.0.0"
} }
}, },
"exif-js": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/exif-js/-/exif-js-2.3.0.tgz",
"integrity": "sha1-nRCBm/Vx+HOBPnZAJBJVq5zhqBQ="
},
"exit": { "exit": {
"version": "0.1.2", "version": "0.1.2",
"resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
@ -5386,6 +5396,18 @@
"locate-path": "^3.0.0" "locate-path": "^3.0.0"
} }
}, },
"fix-orientation": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/fix-orientation/-/fix-orientation-1.1.0.tgz",
"integrity": "sha512-7APDplLhr9p7W1LX+TKlKPLpTJR+rDPqsVqDXOBq63VjdlSL6Wba2y6T2zUHIIJXbMs3h3FzTOGg346Vt3jTsw==",
"requires": {
"data-uri-to-u8": "~1.0.0",
"exif-js": "^2.3.0",
"jpeg-size": "0.0.1",
"png-size": "~0.1.0",
"rotate-component": "~1.0.0"
}
},
"flat-cache": { "flat-cache": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
@ -7618,6 +7640,11 @@
} }
} }
}, },
"jpeg-size": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/jpeg-size/-/jpeg-size-0.0.1.tgz",
"integrity": "sha1-fWCrfR5erQz/OKrlgFt9EsO16OA="
},
"js-levenshtein": { "js-levenshtein": {
"version": "1.1.6", "version": "1.1.6",
"resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz",
@ -9139,6 +9166,11 @@
"resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz",
"integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==" "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA=="
}, },
"png-size": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/png-size/-/png-size-0.1.0.tgz",
"integrity": "sha1-1fTC2a2qMA9lL1vKk40otBR1Pcw="
},
"pnp-webpack-plugin": { "pnp-webpack-plugin": {
"version": "1.5.0", "version": "1.5.0",
"resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.5.0.tgz", "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.5.0.tgz",
@ -10906,6 +10938,11 @@
"inherits": "^2.0.1" "inherits": "^2.0.1"
} }
}, },
"rotate-component": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/rotate-component/-/rotate-component-1.0.0.tgz",
"integrity": "sha1-E5VQu7Au1Hk9MESfyUv/8KlWY10="
},
"rsvp": { "rsvp": {
"version": "4.8.5", "version": "4.8.5",
"resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz",

1
package.json

@ -4,6 +4,7 @@
"private": true, "private": true,
"dependencies": { "dependencies": {
"copy-to-clipboard": "^3.0.8", "copy-to-clipboard": "^3.0.8",
"fix-orientation": "^1.1.0",
"load-script": "^1.0.0", "load-script": "^1.0.0",
"pressure": "^2.1.2", "pressure": "^2.1.2",
"react": "^16.9.0", "react": "^16.9.0",

4
src/UserAction.css

@ -35,11 +35,11 @@
} }
.post-form-bar input[type=file] { .post-form-bar input[type=file] {
border: 0; border: 0;
padding: 0 .5em; padding: 0 0 0 .5em;
} }
@media screen and (max-width: 580px) { @media screen and (max-width: 580px) {
.post-form-bar input[type=file] { .post-form-bar input[type=file] {
width: 110px; width: 120px;
} }
} }
.post-form-bar button { .post-form-bar button {

22
src/UserAction.js

@ -1,17 +1,18 @@
import React, {Component, PureComponent} from 'react'; import React, {Component, PureComponent} from 'react';
import copy from 'copy-to-clipboard';
import {API_BASE, SafeTextarea, PromotionBar} from './Common'; import {API_BASE, SafeTextarea, PromotionBar} from './Common';
import {MessageViewer} from './Message'; import {MessageViewer} from './Message';
import {API_VERSION_PARAM, PKUHELPER_ROOT, API, get_json, token_param} from './flows_api';
import './UserAction.css';
import {LoginPopup} from './infrastructure/widgets'; import {LoginPopup} from './infrastructure/widgets';
import {ConfigUI} from './Config'; import {ConfigUI} from './Config';
import fixOrientation from 'fix-orientation';
import copy from 'copy-to-clipboard';
import {cache} from './cache'; import {cache} from './cache';
import {API_VERSION_PARAM, PKUHELPER_ROOT, API, get_json, token_param} from './flows_api';
import './UserAction.css';
const BASE64_RATE=4/3; const BASE64_RATE=4/3;
const MAX_IMG_DIAM=8000; const MAX_IMG_DIAM=8000;
const MAX_IMG_PX=6000000; const MAX_IMG_PX=5000000;
const MAX_IMG_FILESIZE=450000*BASE64_RATE; const MAX_IMG_FILESIZE=450000*BASE64_RATE;
export const TokenCtx=React.createContext({ export const TokenCtx=React.createContext({
@ -543,11 +544,8 @@ export class PostForm extends Component {
} }
let reader=new FileReader(); let reader=new FileReader();
reader.onload=((event)=>{ // check size function on_got_img(url) {
const url=event.target.result;
const image = new Image(); const image = new Image();
image.src=url;
image.onload=(()=>{ image.onload=(()=>{
let width=image.width; let width=image.width;
let height=image.height; let height=image.height;
@ -600,7 +598,13 @@ export class PostForm extends Component {
reject('图片过大,无法上传'); reject('图片过大,无法上传');
} }
}); });
image.src=url;
}
reader.onload=(event)=>{
fixOrientation(event.target.result,{},(fixed_dataurl)=>{
on_got_img(fixed_dataurl);
}); });
};
reader.readAsDataURL(file); reader.readAsDataURL(file);
}); });
} }

Loading…
Cancel
Save