Kolibri Image Viewer

Processing, playback of audio and video
  • 0CodErr wrote:Падает при попытке открыть файл из аттачмента.
    Пофиксил в libimg (r3499).

    Декодер ожидал, что RLE будет учитывать разрывы color planes внутри общей scanline. Однако в спецификации ясно написано:
    Спецификация pcx wrote:There should always be a decoding break at the end of each scan line. But there will not be a decoding break at the end of each plane within each scan line.
  • KIV падает на этом файле. Файл не валидный, но всё же падение не есть нормальная реакция, тем более когда просматриваешь папку с фалами.
    Attachments
    1.zip (369 Bytes)
    Downloaded 333 times
    Из хаоса в космос
  • Leency wrote:KIV падает на этом файле. Файл не валидный, но всё же падение не есть нормальная реакция, тем более когда просматриваешь папку с фалами.
    Пофиксил в libimg r4229.

    Там вообще плохо с невалидными файлами. Несложные и быстрые проверки делаются, а дальше уже идёт универсальность и надёжность vs скорость работы/разработки и простота кода.

    Добавил файл в архив тестовых изображений.
  • Спасибо.
    Из хаоса в космос
  • Можно пожалуйста добавить скроллбары в KIV?
    Их ну ОЧЕНЬ не хватает.

    Не заставляйте меня новую программу. Пожалуйста :(
    Из хаоса в космос
  • Критический баг:
    Открыть любую картинку в KIV, нажать кнопку "Сделать рисунком рабочего стола" -> зависание.
    Из хаоса в космос
  • KolibriBot « Ср дек 21, 2016 7:47 pm » New SVN revision #6804 by IgorA in /programs/media/kiv/trunk: kiv: scale to screen big images (24 bit)
    Вместо того, чтобы городить с нуля

    Code: Select all

    proc img_resize_to_screen
    следовало использовать img_scale из библиотеки libimg.
    Вот здесь под спойлером есть исходник imgC viewtopic.php?f=24&t=1220&p=66859#p66859 которая использует img_scale и не только. И это работает для разных битностей.
  • 0CodErr wrote:Вместо того, чтобы городить с нуля
    Код:
    proc img_resize_to_screen
    следовало использовать img_scale из библиотеки libimg
    Я согласен с тем что лучше использовать img_scale из библиотеки libimg, чем подключать функцию из buf2d. Но все-таки есть парочка возражений:
    1) что такое _param1 и _param2 ?

    Code: Select all

    proc img.scale _src, _crop_x, _crop_y, _crop_width, _crop_height, _dst, _scale, _inter, _param1, _param2 ;;
    .........
    ;> [_param1]      = see libimg.inc                                                                ;;
    ;> [_param2]      = see libimg.inc                                                                ;;
    посмотрел libimg.inc и толком ничего не понял что оно такое, но думаю что туда должны даваться какие-то константы из этого файла
    2) даже если подключить img_scale то всеравно большая часть добавленной функции img_resize_to_screen останется не изменяемой. Потому как в ней вычисляются размеры в которые должно вписаться изображение, а если изображение полностью влазит, то изменений никаких не делается. Тут в любом случае пришлось-бы что-то городить потому что вызов img_scale на пустое место не прицепишь, сначала нужно подготовить для него параметры.
  • IgorA wrote:2) даже если подключить img_scale то всеравно большая часть добавленной функции img_resize_to_screen останется не изменяемой. Потому как в ней вычисляются размеры в которые должно вписаться изображение, а если изображение полностью влазит, то изменений никаких не делается. Тут в любом случае пришлось-бы что-то городить потому что вызов img_scale на пустое место не прицепишь, сначала нужно подготовить для него параметры.
    Оно у тебя только для 24 bit. Ты для каждой битности собрался дублировать код?
    IgorA wrote:что такое _param1 и _param2 ?
    IgorA wrote:посмотрел libimg.inc и толком ничего не понял что оно такое
    Вот поэтому я специально и привёл ссылку viewtopic.php?f=24&t=1220&p=66859#p66859
    И если бы ты прошёл по ней, то нашёл бы вот это

    Code: Select all

    ; if need scale then scale ; |--------------------------------------- ;
            cmp    [scale.height], dword 0
            je     .scaled
            cmp    [scale.width], dword 0
            je     .scaled
            cmp    [scale], byte "%"
            je    .percent
            push   dword [scale.height]
            push   dword [scale.width]
            jmp    .wh_pushed
    .percent:
            mov    ecx, [src]
            mov    ebx, 100
            mov    eax, [ecx + 8]
            mul    dword [scale.height]
            div    ebx
            push   eax
            mov    eax, [ecx + 4]
            mul    dword [scale.width]
            div    ebx
            push   eax
    .wh_pushed:
            push   dword LIBIMG_INTER_BILINEAR
            push   dword LIBIMG_SCALE_STRETCH
            push   dword 0
            mov    eax, [src]
            push   dword [eax + 8]
            push   dword [eax + 4]
            push   dword 0
            push   dword 0
            push   dword [src]
            call   [img_scale]
    И что тут непонятного?

    Code: Select all

    ; scale type                    ; corresponding img.scale params
    LIBIMG_SCALE_INTEGER	= 1     ; scale factor ; reserved 0
    LIBIMG_SCALE_TILE	= 2     ; new width    ; new height
    LIBIMG_SCALE_STRETCH	= 3     ; new width    ; new height
    LIBIMG_SCALE_FIT_RECT	= 4     ; new width    ; new height
    LIBIMG_SCALE_FIT_WIDTH	= 5     ; new width    ; new height
    LIBIMG_SCALE_FIT_HEIGHT	= 6     ; new width    ; new height
    LIBIMG_SCALE_FIT_MAX	= 7     ; new width    ; new height
    Для LIBIMG_SCALE_STRETCH указываем width и height. И не надо велосипед изобретать, его уже изобрели.
  • Все-равно что-то не получается. На всякий случай даю файл, может кто разберется.
    Attachments
    kiv.asm (28.74 KiB)
    Downloaded 288 times
  • IgorA,
    there is an example of using img.scale. Regarding your code: set crop_width=image_width, same for height, src != dst.

    Current img.scale has a number of limitations (e.g. animated images). I already implemented most of this functionality in my working copy, however I need some time to make the code ready for commit. Please, don't bother yourself with bugs of img.scale, just report.

    Thank you for development of libimg.
  • Понравилось тебе на английском писать, культурный уровень проекта повышаешь?

    У меня тоже есть узконаправленные наработки, не знаю насколько в тему http://websvn.kolibrios.org/filedetails ... m#line-414
  • Pathoswithin wrote:Понравилось тебе на английском писать, культурный уровень проекта повышаешь?
    По-моему это хорошо, ведь больше людей(потенциальных разработчиков) смогут прочитать и понять.
  • Hello again, nice to see you all, guys.

    It's been more than 5 years as I assigned #11 to myself. Now I attach a new preview with scaling and scrollbars. Change zoom mode with 'w' and '=' keys (w for 'fit to window', = for 'do not scale', like sxiv).

    I ask not for bug reports (have enough), but for UI ideas.

    ; cast Leency
    Attachments
    kiv (13.13 KiB)
    Downloaded 272 times
  • Who is online

    Users browsing this forum: No registered users and 1 guest