Тонкости в добавлении png в imgui

#NoViKoV

Известный
Автор темы
56
9
Версия MoonLoader
.026-beta
Привет. Столкнулся с проблемой, что картинка png с прозрачным фоном отображается белым, стоит ее сохранить в jpg, начинает корректно отображаться.

Фиксится? Видел в других скриптах с прозрачным фоном картинки выводились без проблем.
Вопрос с решением проблемы пока что не горит, просто озадачен, почему так? Возможно из-за самой картинки, например, из-за свечения на ней и тп?
Lua:
до мейна
img = imgui.CreateTextureFromFile(getGameDirectory() .. "/moonloader/resource/images/logo.png")

function imgui.OnDrawFrame()
    if not main_window_state.v then
        imgui.Process = false
    end
    if main_window_state.v then
        local sw, sh = getScreenResolution()
        imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
        imgui.SetNextWindowSize(imgui.ImVec2(500, 300), imgui.Cond.FirstUseEver)
        imgui.Begin(fa.ICON_MAXCDN.."  Mafia Helper", main_window_state, imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoScrollbar + imgui.WindowFlags.NoScrollWithMouse + imgui.WindowFlags.NoMove) -- + imgui.WindowFlags.NoResize
        if imgui.Button(u8'Кнопка') then
            themes.SwitchColorTheme(2)
        end
       
        imgui.Image(img, imgui.ImVec2(400, 200))
  
  
        imgui.BeginChild("Themes", imgui.ImVec2(150, 200), true)
            for i, value in ipairs(themes.colorThemes) do
                if imgui.RadioButton(u8(value), checked_radio, i) then
                    themes.SwitchColorTheme(i)
                end
            end
        imgui.EndChild()
        imgui.SameLine()
        imgui.BeginChild("img", imgui.ImVec2(200, 200), true)
        imgui.Text(u8"Привет милый, это текст")
        imgui.EndChild()

        imgui.End()
    end
end
К примеру вытащил картинку из хелпера от Космо, она так же в пнг формате, но визуально проще моей.
 

Вложения

  • 95260702-B242-4507-A94E-DD46E0EF7DDA.png
    95260702-B242-4507-A94E-DD46E0EF7DDA.png
    32.8 KB · Просмотры: 137
  • 5D43FEE2-6F4C-41EE-A884-6ECD1105C9C0.png
    5D43FEE2-6F4C-41EE-A884-6ECD1105C9C0.png
    396.8 KB · Просмотры: 152
  • 7D175C2E-DA38-48EB-B979-6C1F15C37FE0.png
    7D175C2E-DA38-48EB-B979-6C1F15C37FE0.png
    213.2 KB · Просмотры: 159
Последнее редактирование:

Salvatore_Ferrari

Известный
427
239
Привет. Столкнулся с проблемой, что картинка png с прозрачным фоном отображается белым, стоит ее сохранить в jpg, начинает корректно отображаться.

Фиксится? Видел в других скриптах с прозрачным фоном картинки выводились без проблем.
Вопрос с решением проблемы пока что не горит, просто озадачен, почему так? Возможно из-за самой картинки, например, из-за свечения на ней и тп?
Lua:
до мейна
img = imgui.CreateTextureFromFile(getGameDirectory() .. "/moonloader/resource/images/logo.png")

function imgui.OnDrawFrame()
    if not main_window_state.v then
        imgui.Process = false
    end
    if main_window_state.v then
        local sw, sh = getScreenResolution()
        imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
        imgui.SetNextWindowSize(imgui.ImVec2(500, 300), imgui.Cond.FirstUseEver)
        imgui.Begin(fa.ICON_MAXCDN.."  Mafia Helper", main_window_state, imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoScrollbar + imgui.WindowFlags.NoScrollWithMouse + imgui.WindowFlags.NoMove) -- + imgui.WindowFlags.NoResize
        if imgui.Button(u8'Кнопка') then
            themes.SwitchColorTheme(2)
        end
      
        imgui.Image(img, imgui.ImVec2(400, 200))
 
 
        imgui.BeginChild("Themes", imgui.ImVec2(150, 200), true)
            for i, value in ipairs(themes.colorThemes) do
                if imgui.RadioButton(u8(value), checked_radio, i) then
                    themes.SwitchColorTheme(i)
                end
            end
        imgui.EndChild()
        imgui.SameLine()
        imgui.BeginChild("img", imgui.ImVec2(200, 200), true)
        imgui.Text(u8"Привет милый, это текст")
        imgui.EndChild()

        imgui.End()
    end
end
К примеру вытащил картинку из хелпера от Космо, она так же в пнг формате, но визуально проще моей.
Lua:
 local imgui = require 'lib.imgui'

img =  imgui.CreateTextureFromFile(getGameDirectory() ..'\\moonloader\\w.png')
 
    imgui.Process = true
 
function imgui.OnDrawFrame()
 
    
  
 
        local sw, sh = getScreenResolution()
        imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
        imgui.SetNextWindowSize(imgui.ImVec2(500, 300), imgui.Cond.FirstUseEver)
        imgui.Begin("  Mafia Helper", true, imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoScrollbar + imgui.WindowFlags.NoScrollWithMouse + imgui.WindowFlags.NoMove) -- + imgui.WindowFlags.NoResize
        if imgui.Button('Кнопка') then
          
        end
      
        imgui.Image(img, imgui.ImVec2(400, 200))
 
 
        imgui.BeginChild("Themes", imgui.ImVec2(150, 200), true)
          
        
        imgui.EndChild()
        imgui.SameLine()
        imgui.BeginChild("img", imgui.ImVec2(200, 200), true)
        imgui.Text("Привет милый, это текст")
        imgui.EndChild()

        imgui.End()
    end
 
  • Нравится
Реакции: #NoViKoV и danilka000$

#NoViKoV

Известный
Автор темы
56
9
Lua:
 local imgui = require 'lib.imgui'

img =  imgui.CreateTextureFromFile(getGameDirectory() ..'\\moonloader\\w.png')

    imgui.Process = true

function imgui.OnDrawFrame()

   
 

        local sw, sh = getScreenResolution()
        imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
        imgui.SetNextWindowSize(imgui.ImVec2(500, 300), imgui.Cond.FirstUseEver)
        imgui.Begin("  Mafia Helper", true, imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoScrollbar + imgui.WindowFlags.NoScrollWithMouse + imgui.WindowFlags.NoMove) -- + imgui.WindowFlags.NoResize
        if imgui.Button('Кнопка') then
         
        end
     
        imgui.Image(img, imgui.ImVec2(400, 200))


        imgui.BeginChild("Themes", imgui.ImVec2(150, 200), true)
         
       
        imgui.EndChild()
        imgui.SameLine()
        imgui.BeginChild("img", imgui.ImVec2(200, 200), true)
        imgui.Text("Привет милый, это текст")
        imgui.EndChild()

        imgui.End()
    end
Привет. Записал специально видео со своим кодом. Проблема в самой картинке, как я понял. Но из-за чего? В скрипте космо прозрачный фон, у меня прозрачный фон.
Lua:
 local imgui = require 'lib.imgui'

img =  imgui.CreateTextureFromFile(getGameDirectory() ..'\\moonloader\\w.png')

    imgui.Process = true

function imgui.OnDrawFrame()

   
 

        local sw, sh = getScreenResolution()
        imgui.SetNextWindowPos(imgui.ImVec2(sw / 2, sh / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
        imgui.SetNextWindowSize(imgui.ImVec2(500, 300), imgui.Cond.FirstUseEver)
        imgui.Begin("  Mafia Helper", true, imgui.WindowFlags.NoCollapse + imgui.WindowFlags.NoScrollbar + imgui.WindowFlags.NoScrollWithMouse + imgui.WindowFlags.NoMove) -- + imgui.WindowFlags.NoResize
        if imgui.Button('Кнопка') then
         
        end
     
        imgui.Image(img, imgui.ImVec2(400, 200))


        imgui.BeginChild("Themes", imgui.ImVec2(150, 200), true)
         
       
        imgui.EndChild()
        imgui.SameLine()
        imgui.BeginChild("img", imgui.ImVec2(200, 200), true)
        imgui.Text("Привет милый, это текст")
        imgui.EndChild()

        imgui.End()
    end


Проблему решил, сама картинка не нравилась imgui, возможно из-за наложенных свечений и тп. Сделал более простую версию, отображается корректно.
Но спасибо за участие
 
Последнее редактирование:

#Northn

Pears Project — уже запущен!
Всефорумный модератор
2,654
2,535
  • Нравится
Реакции: EclipsedFlow и #NoViKoV