图片开发Demo

// 全局导入Image模块
import image from '@ohos.multimedia.image';
import resourceManager from '@ohos.resourceManager';
import fs from '@ohos.file.fs';

@Entry
@Component
struct Index {
  @State message: string = '图像编辑处理'
  @State imagePixel: PixelMap = undefined;
  @State image2: PixelMap = undefined;

  aboutToAppear() {
    this.getPicture((d) => {
      this.imagePixel = d;
    })
  }

  async getPicture(callback) {
    const context: Context = getContext(this);
    // 获取resourceManager资源管理
    const resourceMgr: resourceManager.ResourceManager = context.resourceManager;
    // 获取rawfile文件夹下test.jpg的ArrayBuffer
    const fileData: Uint8Array = await resourceMgr.getRawFileContent('comment.png');
    // 获取图片的ArrayBuffer
    const buffer = fileData.buffer;
    // 创建imageSource
    const imageSource: image.ImageSource = image.createImageSource(buffer);
    // 创建PixelMap
    const pixelMap: image.PixelMap = await imageSource.createPixelMap();
    // 获取图片大小
    pixelMap.getImageInfo().then((info: image.ImageInfo) => {
      console.info('info.width = ' + info.size.width);
      console.info('info.height = ' + info.size.height);
    }).catch((err) => {
      console.error("Failed to obtain the image pixel map information.And the error is: " + err);
    });
    callback(pixelMap)
  }

  async Demo(imagePixel, callback) {
    await imagePixel.scale(2, 1);
    callback(imagePixel.getPixelMap());
  }
  @State isShow:boolean = false

  build() {
    Column({ space: 20 }) {
      Text(this.message)
        .fontSize(50)
        .fontWeight(FontWeight.Bold)

      Button("解码")
        .fontSize(40)
        .onClick(() => {
          this.getPicture((data) => {
            this.imagePixel = data;
          })
        })
      Image(this.imagePixel)
        .height(200)
      Button("PixelMap")
        .fontSize(40)
        .onClick(() => {
         this.Demo(this.imagePixel,(data)=>{
           this.image2 = data
         })
        })
      Button("编码")
        .fontSize(40)
        .onClick(() => {
          this.imagePixel.scale(2,1).then(
            (data)=>{
              console.info("成功")
              this.isShow = true
            }
          ).catch()

        })
      Image(this.imagePixel)
        .visibility(this.isShow?Visibility.Visible:Visibility.None)
        .height(230)
        .objectFit(ImageFit.Contain)

    }
    .width('100%')
    .height('100%')
  }
}
  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值