| 84 | } |
| 85 | |
| 86 | Tensor Image::tensor() { |
| 87 | MLLM_RT_ASSERT_EQ(c_, 3); |
| 88 | auto ret_tensor = Tensor::empty({h_, w_, c_}, kFloat32, kCPU).alloc(); |
| 89 | |
| 90 | auto bare_tensor_ptr = ret_tensor.ptr<float>(); |
| 91 | auto bare_stb_ptr = static_cast<unsigned char*>(image_ptr_->ptr_); |
| 92 | |
| 93 | std::copy(bare_stb_ptr, bare_stb_ptr + ret_tensor.numel(), bare_tensor_ptr); |
| 94 | |
| 95 | return ret_tensor; |
| 96 | } |
| 97 | |
| 98 | unsigned char* Image::ptr() { |
| 99 | if (!image_ptr_) return nullptr; |