当前位置: 首页 > news >正文

为什么网站找不到了产品推广计划怎么写

为什么网站找不到了,产品推广计划怎么写,怎么查看网站备案号,网站开发房源岗位注:该列出的代码,都在文章内示例出 1. 另存为按钮事件: const saveAsHandler async () > {const { path, sessionId } recordInfoif(typeof message ! string) return;// 因为我的图片是加密的,所以我需要根据接口返回的路…

注:该列出的代码,都在文章内示例出

1. 另存为按钮事件:

const saveAsHandler = async () => {const { path, sessionId } = recordInfoif(typeof message !== 'string') return;// 因为我的图片是加密的,所以我需要根据接口返回的路径,然后根据不同图片的密钥(sessionId)去进行解密(decodeAvatarUrl)处理,最后返回blob,所以这块儿不必纠结const res = await decodeAvatarUrl(path, sessionId, false)// blob转ArrayBufferblobToArrayBuffer(res, async (buffer: ArrayBuffer) => {const type = await getImageType(res) // 将Blob数据传给getImageType,经处理后获取图片类型, 请看标题2的代码示例// saveAsPicture 这个就是渲染进程与Electron的通信 ,请看标题3的代码示例saveAsPicture({ buffer, name: getNowTime(), type }).then(() => setOpen(false))})}

2. getImageType代码:

/*** get image type In image buffer*/
export function getImageType (blob: Blob) {return new Promise((resolve: (type: string) => void, reject) => {const reader = new FileReader();reader.onload = (event: any) => {// 使用Uint8Array和DataView来读取文件头部const arr = new Uint8Array(event.target.result);const view = new DataView(arr.buffer);// 根据文件头部的magic number判断文件类型switch (view.getUint16(0, false)) {case 0xffd8: // JPEGresolve('image/jpeg');break;case 0x8950: // PNGresolve('image/png');break;case 0x4749: // GIFresolve('image/gif');break;case 0x4949: // TIFFcase 0x4d4d: // TIFFresolve('image/tiff');break;default:reject(new Error('Unsupported image type'));}};reader.onerror = reject;// 读取Blob为ArrayBufferreader.readAsArrayBuffer(blob);})
}

3. saveAsPicture的主要代码:

/** 校验:另存为 */
type saveAsPicturePrams = {buffer: ArrayBuffer;name: string;type: string;
} 
/** 另存为 */
export const saveAsPicture = (params: saveAsPicturePrams) => {// 关于与Electron的UI.SAVEASPATH的通信,请看标题4return ipcRenderer.invoke(UI.SAVEASPATH, params)
}

4. Electron进程与渲染进程的交互

/*** 对话窗口:另存为图片时,需要获取选择要存储的路径* @param buffer 数据* @name 文件名* @type 文件类型*/
ipcMain.handle(UI.SAVEASPATH, (e, arg: { buffer: ArrayBuffer, name: string, type: string; }) => {return new Promise(async (resolve, reject) => {const { buffer, name, type } = arg;const imageType = type?.split('/').pop() //获取图片格式const imageName = `xxxxxxx_${name}`const defaultPath = path.join(app.getPath('downloads'),`${imageName}.${imageType}`)await dialog.showSaveDialog(mainWindow, {title: '另存为...',buttonLabel: '保存',defaultPath,properties: ['createDirectory'],filters: [{name: `图片文件(*.${imageType})`,extensions: [imageType]}]}).then((res: any) => {if(res.canceled) {resolve(res)return;};fs.writeFileSync(res.filePath, new DataView(buffer))resolve(res)})})})

效果图:

在这里插入图片描述

http://www.yayakq.cn/news/716403/

相关文章:

  • 网站建设公司推荐北京华网在线免费源码资源源码站
  • 做网站品牌公司专科千万别学数字媒体应用技术
  • 企业网站开发中文摘要在线网站备份
  • 做企业的网站wordpress 不显示缩略图
  • 网站建设费用摊销多少年汕头站扩建后比哪个站大
  • 企业网站建设变相收取等级保护费企业网站模板观叫湖南岚鸿团队
  • 移动端网站如何优化一个网站需要几个人做
  • wordpress网站框架上海建筑建材业信息网
  • 普陀网站制作网站demo制作工具
  • 网站的域名技巧和空间选择个人网站制作方法
  • 中国水电建设集团港航建设有限公司网站爱字幕app制作视频软件下载
  • 做自动采集电影网站有什么处罚自助游网站开发分析报告
  • 陕西企业营销型网站建设搜狗推广登录平台官网
  • 建设门户网站费用深圳纯手工seo
  • 泗阳做网站的如何建立自已的网站
  • 同一素材 不同的布局网站设计导出wordpress用户
  • 百度地图api wordpress搜索引擎优化的基本手段
  • 免费企业网站建站做网站分辨率一般多少
  • 深圳招聘网站推荐室内设计平面图包括
  • 如何做电影网站挣钱室内装修设计下载什么软件
  • 石家庄网站设计建设百度广告怎么推广
  • 上海建筑建材业门户网站网页版微信怎么扫描二维码
  • 网站被镜像怎么做微信公众号免费开通
  • dede网站地图中山网站制作设计
  • 网站后台文章编辑器雨人网站建设
  • 上海交通大学网站建设海外运营工作内容
  • 软件开发模板seo的网站建设
  • 网站建设与运行的盈利收入服务器怎么放网站吗
  • 自学软件网站开发如何做psd的模板下载网站
  • 电子商务网站建设需要什么wordpress上的博客