wildfire-im-sdk
Version:
野火IM SDK for Vue3 projects
49 lines (41 loc) • 1.35 kB
JavaScript
/*
* Copyright (c) 2020 WildFireChat. All rights reserved.
*/
import MediaMessageContent from './mediaMessageContent';
import MessageContentMediaType from './messageContentMediaType';
import MessageContentType from './messageContentType';
export default class ImageMessageContent extends MediaMessageContent {
// base64 encoded, 不包含头部:data:image/png;base64,
thumbnail;
imageWidth;
imageHeight;
constructor(fileOrLocalPath, remotePath, thumbnail) {
super(MessageContentType.Image, MessageContentMediaType.Image, fileOrLocalPath, remotePath);
this.thumbnail = thumbnail;
}
digest() {
return '[图片]';
}
encode() {
let payload = super.encode();
payload.mediaType = MessageContentMediaType.Image;
payload.binaryContent = this.thumbnail;
if (this.imageWidth) {
let obj = {
w: this.imageWidth,
h: this.imageHeight
}
payload.content = JSON.stringify(obj)
}
return payload;
}
decode(payload) {
super.decode(payload);
this.thumbnail = payload.binaryContent;
if (payload.content) {
let obj = JSON.parse(payload.content)
this.imageWidth = obj['w'];
this.imageHeight = obj['h'];
}
}
}