Bug 408177 - Assert saving lab to tiff. [GDB backtrace]
Summary: Assert saving lab to tiff. [GDB backtrace]
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: File formats (show other bugs)
Version: git master (please specify the git hash!)
Platform: Other Linux
: NOR crash
Target Milestone: ---
Assignee: Tiar
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-06-01 12:04 UTC by wolthera
Modified: 2019-06-20 10:49 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description wolthera 2019-06-01 12:04:13 UTC
SUMMARY
I made a 8bit cmyk image, then converted that to 8bit lab and then exported it to tiff.

STEPS TO REPRODUCE
1. Create L*a*b* canvas.
2. Save as tiff.

ADDITIONAL INFORMATION

Thread 2496 "Thread (pooled)" received signal SIGABRT, Aborted.
[Switching to Thread 0x7fff50ff6700 (LWP 16812)]
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
51      ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) thread apply all backtrace

Thread 2496 (Thread 0x7fff50ff6700 (LWP 16812)):
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1  0x00007ffff2799801 in __GI_abort () at abort.c:79
#2  0x00007ffff316ee7b in QMessageLogger::fatal(char const*, ...) const () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#3  0x00007ffff4ac4628 in kis_assert_common (assertion=0x7fff95206bd0 "visitor->visit(root)", 
    file=0x7fff95206438 "/home/wolthera/krita/src/plugins/impex/tiff/kis_tiff_converter.cc", line=757, 
    throwException=false, isIgnorable=false) at /home/wolthera/krita/src/libs/global/kis_assert.cpp:90
#4  0x00007ffff4ac4944 in kis_assert_recoverable (assertion=0x7fff95206bd0 "visitor->visit(root)", 
    file=0x7fff95206438 "/home/wolthera/krita/src/plugins/impex/tiff/kis_tiff_converter.cc", line=757)
    at /home/wolthera/krita/src/libs/global/kis_assert.cpp:103
#5  0x00007fff951eed77 in KisTIFFConverter::buildFile (this=0x7fff50ff5840, filename=..., kisimage=..., options=...)
    at /home/wolthera/krita/src/plugins/impex/tiff/kis_tiff_converter.cc:757
#6  0x00007fff951fb625 in KisTIFFExport::convert (this=0x55556c654d80, document=0x55556c0721d0, configuration=...)
    at /home/wolthera/krita/src/plugins/impex/tiff/kis_tiff_export.cc:102
#7  0x00007ffff6b805eb in KisImportExportManager::doExportImpl (this=0x55556c871b20, location=..., filter=..., 
    exportConfiguration=...) at /home/wolthera/krita/src/libs/ui/KisImportExportManager.cpp:655
#8  0x00007ffff6b800f3 in KisImportExportManager::doExport (this=0x55556c871b20, location=..., filter=..., 
    exportConfiguration=..., alsoAsKra=false) at /home/wolthera/krita/src/libs/ui/KisImportExportManager.cpp:607
#9  0x00007ffff6b85383 in std::__invoke_impl<KisImportExportErrorCode, KisImportExportErrorCode (KisImportExportManager::*&)(QString const&, QSharedPointer<KisImportExportFilter>, KisPinnedSharedPtr<KisPropertiesConfiguration>, bool), KisImportExportManager*&, QString&, QSharedPointer<KisImportExportFilter>&, KisPinnedSharedPtr<KisPropertiesConfiguration>&, bool&> (
    __f=
    @0x55556da553f8: (KisImportExportErrorCode (KisImportExportManager::*)(KisImportExportManager * const, const QString &, QSharedPointer<KisImportExportFilter>, KisPinnedSharedPtr<KisPropertiesConfiguration>, bool)) 0x7ffff6b80058 <KisImportExportManager::doExport(QString const&, QSharedPointer<KisImportExportFilter>, KisPinnedSharedPtr<KisPropertiesConfiguration>, bool)>, __t=@0x55556da55430: 0x55556c871b20, __args#0=..., __args#1=..., __args#2=..., __args#3=@0x55556da55408: false)
    at /usr/include/c++/7/bits/invoke.h:73
#10 0x00007ffff6b8512c in std::__invoke<KisImportExportErrorCode (KisImportExportManager::*&)(QString const&, QSharedPointer<KisImportExportFilter>, KisPinnedSharedPtr<KisPropertiesConfiguration>, bool), KisImportExportManager*&, QString&, QSharedPointer<KisImportExportFilter>&, KisPinnedSharedPtr<KisPropertiesConfiguration>&, bool&> (__fn=
---Type <return> to continue, or q <return> to quit---
    @0x55556da553f8: (KisImportExportErrorCode (KisImportExportManager::*)(KisImportExportManager * const, const QString &, QSharedPointer<KisImportExportFilter>, KisPinnedSharedPtr<KisPropertiesConfiguration>, bool)) 0x7ffff6b80058 <KisImportExportManager::doExport(QString const&, QSharedPointer<KisImportExportFilter>, KisPinnedSharedPtr<KisPropertiesConfiguration>, bool)>, __args#0=@0x55556da55430: 0x55556c871b20, __args#1=..., __args#2=..., __args#3=..., __args#4=@0x55556da55408: false)
    at /usr/include/c++/7/bits/invoke.h:96
#11 0x00007ffff6b84d17 in std::_Bind<KisImportExportErrorCode (KisImportExportManager::*(KisImportExportManager*, QString, QSharedPointer<KisImportExportFilter>, KisPinnedSharedPtr<KisPropertiesConfiguration>, bool))(QString const&, QSharedPointer<KisImportExportFilter>, KisPinnedSharedPtr<KisPropertiesConfiguration>, bool)>::__call<KisImportExportErrorCode, , 0ul, 1ul, 2ul, 3ul, 4ul>(std::tuple<>&&, std::_Index_tuple<0ul, 1ul, 2ul, 3ul, 4ul>) (this=0x55556da553f8, __args=...)
    at /usr/include/c++/7/functional:469
#12 0x00007ffff6b84801 in std::_Bind<KisImportExportErrorCode (KisImportExportManager::*(KisImportExportManager*, QString, QSharedPointer<KisImportExportFilter>, KisPinnedSharedPtr<KisPropertiesConfiguration>, bool))(QString const&, QSharedPointer<KisImportExportFilter>, KisPinnedSharedPtr<KisPropertiesConfiguration>, bool)>::operator()<, KisImportExportErrorCode>() (
    this=0x55556da553f8) at /usr/include/c++/7/functional:551
#13 0x00007ffff6b85700 in QtConcurrent::StoredFunctorCall0<KisImportExportErrorCode, std::_Bind<KisImportExportErrorCode (KisImportExportManager::*(KisImportExportManager*, QString, QSharedPointer<KisImportExportFilter>, KisPinnedSharedPtr<KisPropertiesConfiguration>, bool))(QString const&, QSharedPointer<KisImportExportFilter>, KisPinnedSharedPtr<KisPropertiesConfiguration>, bool)> >::runFunctor() (this=0x55556da553b0)
    at /usr/include/x86_64-linux-gnu/qt5/QtConcurrent/qtconcurrentstoredfunctioncall.h:60
#14 0x00007ffff6b855d5 in QtConcurrent::RunFunctionTask<KisImportExportErrorCode>::run (this=0x55556da553b0)
    at /usr/include/x86_64-linux-gnu/qt5/QtConcurrent/qtconcurrentrunbase.h:108
#15 0x00007ffff3197352 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#16 0x00007ffff3192bc2 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#17 0x00007fffec0116db in start_thread (arg=0x7fff50ff6700) at pthread_create.c:463
#18 0x00007ffff287a88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 16 (Thread 0x7fff977fe700 (LWP 17699)):
#0  0x00007ffff286dbf9 in __GI___poll (fds=0x7fff88004ee0, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fffea7145c9 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fffea7146dc in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff33c815b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
---Type <return> to continue, or q <return> to quit---
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007ffff336964a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007ffff319141a in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007ffff3192bc2 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007fffec0116db in start_thread (arg=0x7fff977fe700) at pthread_create.c:463
#8  0x00007ffff287a88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 15 (Thread 0x7fff97fff700 (LWP 17686)):
#0  0x00007ffff286dbf9 in __GI___poll (fds=0x7fff90006fb0, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fffea7145c9 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fffea7146dc in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff33c813f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007ffff336964a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007ffff319141a in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007fffd61dd1c6 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#7  0x00007ffff3192bc2 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#8  0x00007fffec0116db in start_thread (arg=0x7fff97fff700) at pthread_create.c:463
#9  0x00007ffff287a88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 14 (Thread 0x7fffaae1d700 (LWP 17681)):
#0  0x00007ffff286dbf9 in __GI___poll (fds=0x7fff98004990, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fffea7145c9 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fffea7146dc in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff33c813f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007ffff336964a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007ffff319141a in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
---Type <return> to continue, or q <return> to quit---
#6  0x00007fffd5d182e5 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5
#7  0x00007ffff3192bc2 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#8  0x00007fffec0116db in start_thread (arg=0x7fffaae1d700) at pthread_create.c:463
#9  0x00007ffff287a88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 13 (Thread 0x7fffaa61c700 (LWP 17649)):
#0  0x00007ffff283d9d0 in __GI___nanosleep (requested_time=0x7fffaa61bd70, remaining=0x7fffaa61bd70)
    at ../sysdeps/unix/sysv/linux/nanosleep.c:28
#1  0x00007ffff33c7a9d in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#2  0x00007ffff51da0ff in KisTileDataSwapper::run (this=
    0x7ffff598c620 <(anonymous namespace)::Q_QGS_s_instance::innerFunction()::holder+64>)
    at /home/wolthera/krita/src/libs/image/tiles3/swap/kis_tile_data_swapper.cpp:97
#3  0x00007ffff3192bc2 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007fffec0116db in start_thread (arg=0x7fffaa61c700) at pthread_create.c:463
#5  0x00007ffff287a88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 11 (Thread 0x7fffb1709700 (LWP 17642)):
#0  0x00007ffff286dbf9 in __GI___poll (fds=0x7fffac004740, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fffea7145c9 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fffea7146dc in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff33c813f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007ffff336964a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007ffff319141a in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007ffff3192bc2 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007fffec0116db in start_thread (arg=0x7fffb1709700) at pthread_create.c:463
#8  0x00007ffff287a88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 10 (Thread 0x7fffdd1c5700 (LWP 17398)):
#0  0x00007fffec0179f3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x55555754b848)
---Type <return> to continue, or q <return> to quit---
    at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  __pthread_cond_wait_common (abstime=0x0, mutex=0x55555754b7f8, cond=0x55555754b820) at pthread_cond_wait.c:502
#2  __pthread_cond_wait (cond=0x55555754b820, mutex=0x55555754b7f8) at pthread_cond_wait.c:655
#3  0x00007fffcb2cddcb in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#4  0x00007fffcb2cdaf7 in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#5  0x00007fffec0116db in start_thread (arg=0x7fffdd1c5700) at pthread_create.c:463
#6  0x00007ffff287a88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 9 (Thread 0x7fffca007700 (LWP 17397)):
#0  0x00007ffff286dbf9 in __GI___poll (fds=0x7fffca006c78, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fffe94b0747 in ?? () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#2  0x00007fffe94b236a in xcb_wait_for_event () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#3  0x00007fffde50e32a in ?? () from /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#4  0x00007ffff3192bc2 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007fffec0116db in start_thread (arg=0x7fffca007700) at pthread_create.c:463
#6  0x00007ffff287a88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 3 (Thread 0x7fffd1fb1700 (LWP 17386)):
#0  0x00007ffff286dbf9 in __GI___poll (fds=0x7fffcc01d570, nfds=4, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fffea7145c9 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fffea7146dc in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff33c813f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007ffff336964a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007ffff319141a in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007fffec23f015 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5
#7  0x00007ffff3192bc2 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#8  0x00007fffec0116db in start_thread (arg=0x7fffd1fb1700) at pthread_create.c:463
#9  0x00007ffff287a88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

---Type <return> to continue, or q <return> to quit---
Thread 1 (Thread 0x7ffff7f80e80 (LWP 17232)):
#0  0x00007ffff286dbf9 in __GI___poll (fds=0x55556c3f3da0, nfds=12, timeout=146) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fffea7145c9 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fffea7146dc in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007ffff33c813f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007ffff336964a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007ffff3372800 in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x0000555555e52115 in main (argc=1, argv=0x7fffffffe218) at /home/wolthera/krita/src/krita/main.cc:546
(gdb) 
(gdb)
Comment 1 Halla Rempt 2019-06-03 14:18:15 UTC
The assert was added by Tymond during the file handling error reporting; can you take a look at what's up? I'm not sure the safe asserts here are actually a good idea, after all, we want to report the problems back to the user. But apart from that, something else must've broken.
Comment 2 Dmitry Kazakov 2019-06-04 10:53:55 UTC
Here on master is just fails with error message :)
Comment 3 Halla Rempt 2019-06-04 10:57:38 UTC
I get the assert too: 

ASSERT (krita): "visitor->visit(root)" in file /home/boud/dev/krita/plugins/impex/tiff/kis_tiff_converter.cc, line 757


You probably used different build settings.
Comment 4 Tiar 2019-06-11 12:04:52 UTC
Git commit 037a1d75ddfe00926707abc97ab5e12c58a72f86 by Agata Cacko.
Committed on 11/06/2019 at 11:53.
Pushed by tymond into branch 'master'.

Remove wrongly placed assert in tiff export

Previous version of tiff export assumed that if visitor returns
false it means internal error, a bug in the code. Truth is, it can
happen also if the image (or layer) has an unsupported color space.
Hence deletion of the assert and replacement InternalError error code
with just Failure.

M  +2    -2    plugins/impex/tiff/kis_tiff_converter.cc

https://invent.kde.org/kde/krita/commit/037a1d75ddfe00926707abc97ab5e12c58a72f86
Comment 5 Tiar 2019-06-11 12:08:16 UTC
The above commit just fix the issue of assert being placed in a wrong location, so now instead of assert/crash, users will see the message that saving failed. It's because there is no support for LABA 8bit integer tiff images in Krita yet.

I have the code for supporting this color space working etc., but it needs a bit of consideration and comparison with tiff specification. I will CC the add-support commit here, too.
Comment 6 Halla Rempt 2019-06-13 06:33:17 UTC
Git commit 3d1a4b0c63d7325835771b4a6f01af8296250c19 by Boudewijn Rempt, on behalf of Agata Cacko.
Committed on 13/06/2019 at 06:00.
Pushed by rempt into branch 'krita/4.2'.

Remove wrongly placed assert in tiff export

Previous version of tiff export assumed that if visitor returns
false it means internal error, a bug in the code. Truth is, it can
happen also if the image (or layer) has an unsupported color space.
Hence deletion of the assert and replacement InternalError error code
with just Failure.

M  +2    -2    plugins/impex/tiff/kis_tiff_converter.cc

https://invent.kde.org/kde/krita/commit/3d1a4b0c63d7325835771b4a6f01af8296250c19
Comment 7 Tiar 2019-06-15 18:27:37 UTC
Git commit 0893c1a78427403164ec29c5c86a46869f57d057 by Agata Cacko.
Committed on 15/06/2019 at 16:50.
Pushed by tymond into branch 'master'.

Add conversion of colorspace to tiff export

Not every colorspace supported by Krita is supported by tiff.
In case of exporting an image with an unsupported color space
it should convert to the closest one. This commit ensures that.

M  +8    -0    plugins/impex/tiff/kis_tiff_converter.cc
M  +65   -21   plugins/impex/tiff/kis_tiff_writer_visitor.cpp

https://invent.kde.org/kde/krita/commit/0893c1a78427403164ec29c5c86a46869f57d057
Comment 8 Halla Rempt 2019-06-17 08:18:07 UTC
Git commit 0f123641b9e5c43a9a196342d606ec3ca93cde17 by Boudewijn Rempt, on behalf of Agata Cacko.
Committed on 17/06/2019 at 08:17.
Pushed by rempt into branch 'krita/4.2'.

Add conversion of colorspace to tiff export

Not every colorspace supported by Krita is supported by tiff.
In case of exporting an image with an unsupported color space
it should convert to the closest one. This commit ensures that.

M  +8    -0    plugins/impex/tiff/kis_tiff_converter.cc
M  +65   -21   plugins/impex/tiff/kis_tiff_writer_visitor.cpp

https://invent.kde.org/kde/krita/commit/0f123641b9e5c43a9a196342d606ec3ca93cde17
Comment 9 Tiar 2019-06-18 08:53:59 UTC
Git commit d0c5d7697f2913e9913964d3407a564b90ebbcb5 by Agata Cacko.
Committed on 18/06/2019 at 08:53.
Pushed by tymond into branch 'master'.

Add support for more color spaces in tiff impex

This commit adds support for following color spaces/bit depths:
Export:
- laba i8, f32
- graya f16, f32
- cmykaf32
Import:
- cmyka f32
- laba f32, f16, i8
Related: bug 391987

M  +43   -9    plugins/impex/tiff/kis_tiff_converter.cc
M  +17   -9    plugins/impex/tiff/kis_tiff_writer_visitor.cpp

https://invent.kde.org/kde/krita/commit/d0c5d7697f2913e9913964d3407a564b90ebbcb5
Comment 10 Halla Rempt 2019-06-20 10:49:22 UTC
Git commit 52060c2c5ec2511f6fbbc8704e0bf8c43ae0a8a6 by Boudewijn Rempt, on behalf of Agata Cacko.
Committed on 20/06/2019 at 10:31.
Pushed by rempt into branch 'krita/4.2'.

Add support for more color spaces in tiff impex

This commit adds support for following color spaces/bit depths:
Export:
- laba i8, f32
- graya f16, f32
- cmykaf32
Import:
- cmyka f32
- laba f32, f16, i8
Related: bug 391987

M  +43   -9    plugins/impex/tiff/kis_tiff_converter.cc
M  +17   -9    plugins/impex/tiff/kis_tiff_writer_visitor.cpp

https://invent.kde.org/kde/krita/commit/52060c2c5ec2511f6fbbc8704e0bf8c43ae0a8a6