!43732 【挑单5.0】解决drawablePixelMap创建的editor设置不合理问题

Merge pull request !43732 from 吴寅潇/fixDrawablePixelMap
This commit is contained in:
openharmony_ci 2024-09-19 02:17:58 +00:00 committed by Gitee
commit fb3889373a
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
2 changed files with 13 additions and 3 deletions

View File

@ -16,6 +16,7 @@
#include "image_converter.h"
#include "drawable_descriptor_log.h"
#include "securec.h"
#ifndef PREVIEW
#include "image_utils.h"
#include "platform/image_native/image_type.h"
@ -139,13 +140,17 @@ std::shared_ptr<Media::PixelMap> ImageConverter::BitmapToPixelMap(
auto data = bitMap->GetPixels();
opts.size.width = static_cast<int32_t>(bitMap->GetWidth());
opts.size.height = static_cast<int32_t>(bitMap->GetHeight());
opts.editable = true;
opts.editable = false;
auto pixelMap = Media::PixelMap::Create(opts);
if (!pixelMap) {
HILOGE("PixelMap is null, bitMap's Size = (%{public}d, %{public}d)", bitMap->GetWidth(), bitMap->GetHeight());
return pixelMap;
}
pixelMap->WritePixels(reinterpret_cast<uint8_t*>(data), opts.size.width * opts.size.height * sizeof(uint32_t));
auto dstAddr = pixelMap->GetWritablePixels();
if (memcpy_s(dstAddr, pixelMap->GetByteCount(), data, pixelMap->GetByteCount()) != 0) {
HILOGE("PixelMap write fail");
return nullptr;
}
return pixelMap;
}
#endif

View File

@ -113,7 +113,12 @@ public:
return 0;
}
uint32_t WritePixels(const uint8_t *source, const uint64_t &bufferSize)
void* GetWritablePixels()
{
return nullptr;
}
int32_t GetByteCount()
{
return 0;
}