mirror of
https://github.com/xiaoyifang/goldendict-ng.git
synced 2024-11-27 15:24:05 +00:00
optimize: tiff method refactor
This commit is contained in:
parent
64d989f9c5
commit
67c74136e8
29
dsl.cc
29
dsl.cc
|
@ -1919,33 +1919,8 @@ void DslResourceRequest::run()
|
||||||
{
|
{
|
||||||
// Convert it
|
// Convert it
|
||||||
|
|
||||||
dataMutex.lock();
|
Mutex::Lock _( dataMutex );
|
||||||
|
GdTiff::tiff2img( data );
|
||||||
QImage img = QImage::fromData( (unsigned char *) &data.front(),
|
|
||||||
data.size() );
|
|
||||||
|
|
||||||
#ifdef MAKE_EXTRA_TIFF_HANDLER
|
|
||||||
if( img.isNull() )
|
|
||||||
GdTiff::tiffToQImage( &data.front(), data.size(), img );
|
|
||||||
#endif
|
|
||||||
|
|
||||||
dataMutex.unlock();
|
|
||||||
|
|
||||||
if ( !img.isNull() )
|
|
||||||
{
|
|
||||||
// Managed to load -- now store it back as BMP
|
|
||||||
|
|
||||||
QByteArray ba;
|
|
||||||
QBuffer buffer( &ba );
|
|
||||||
buffer.open( QIODevice::WriteOnly );
|
|
||||||
img.save( &buffer, "BMP" );
|
|
||||||
|
|
||||||
Mutex::Lock _( dataMutex );
|
|
||||||
|
|
||||||
data.resize( buffer.size() );
|
|
||||||
|
|
||||||
memcpy( &data.front(), buffer.data(), data.size() );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Mutex::Lock _( dataMutex );
|
Mutex::Lock _( dataMutex );
|
||||||
|
|
29
gls.cc
29
gls.cc
|
@ -1287,33 +1287,8 @@ void GlsResourceRequest::run()
|
||||||
{
|
{
|
||||||
// Convert it
|
// Convert it
|
||||||
|
|
||||||
dataMutex.lock();
|
Mutex::Lock _( dataMutex );
|
||||||
|
GdTiff::tiff2img( data );
|
||||||
QImage img = QImage::fromData( (unsigned char *) &data.front(),
|
|
||||||
data.size() );
|
|
||||||
|
|
||||||
#ifdef MAKE_EXTRA_TIFF_HANDLER
|
|
||||||
if( img.isNull() )
|
|
||||||
GdTiff::tiffToQImage( &data.front(), data.size(), img );
|
|
||||||
#endif
|
|
||||||
|
|
||||||
dataMutex.unlock();
|
|
||||||
|
|
||||||
if ( !img.isNull() )
|
|
||||||
{
|
|
||||||
// Managed to load -- now store it back as BMP
|
|
||||||
|
|
||||||
QByteArray ba;
|
|
||||||
QBuffer buffer( &ba );
|
|
||||||
buffer.open( QIODevice::WriteOnly );
|
|
||||||
img.save( &buffer, "BMP" );
|
|
||||||
|
|
||||||
Mutex::Lock _( dataMutex );
|
|
||||||
|
|
||||||
data.resize( buffer.size() );
|
|
||||||
|
|
||||||
memcpy( &data.front(), buffer.data(), data.size() );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if( Filetype::isNameOfCSS( resourceName ) )
|
if( Filetype::isNameOfCSS( resourceName ) )
|
||||||
|
|
31
mdx.cc
31
mdx.cc
|
@ -975,33 +975,8 @@ void MddResourceRequest::run()
|
||||||
if( Filetype::isNameOfTiff( u8ResourceName ) )
|
if( Filetype::isNameOfTiff( u8ResourceName ) )
|
||||||
{
|
{
|
||||||
// Convert it
|
// Convert it
|
||||||
|
Mutex::Lock _( dataMutex );
|
||||||
dataMutex.lock();
|
GdTiff::tiff2img( data );
|
||||||
|
|
||||||
QImage img = QImage::fromData( (unsigned char *)&data.front(), data.size() );
|
|
||||||
|
|
||||||
#ifdef MAKE_EXTRA_TIFF_HANDLER
|
|
||||||
if( img.isNull() )
|
|
||||||
GdTiff::tiffToQImage( &data.front(), data.size(), img );
|
|
||||||
#endif
|
|
||||||
|
|
||||||
dataMutex.unlock();
|
|
||||||
|
|
||||||
if( !img.isNull() )
|
|
||||||
{
|
|
||||||
// Managed to load -- now store it back as BMP
|
|
||||||
|
|
||||||
QByteArray ba;
|
|
||||||
QBuffer buffer( &ba );
|
|
||||||
buffer.open( QIODevice::WriteOnly );
|
|
||||||
img.save( &buffer, "webp" );
|
|
||||||
|
|
||||||
Mutex::Lock _( dataMutex );
|
|
||||||
|
|
||||||
data.resize( buffer.size() );
|
|
||||||
|
|
||||||
memcpy( &data.front(), buffer.data(), data.size() );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -1096,8 +1071,6 @@ QString & MdxDictionary::filterResource( QString const & articleId, QString & ar
|
||||||
QString id = QString::fromStdString( getId() );
|
QString id = QString::fromStdString( getId() );
|
||||||
QString uniquePrefix = QString::fromLatin1( "g" ) + id + "_" + articleId + "_";
|
QString uniquePrefix = QString::fromLatin1( "g" ) + id + "_" + articleId + "_";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
QString articleNewText;
|
QString articleNewText;
|
||||||
int linkPos = 0;
|
int linkPos = 0;
|
||||||
QRegularExpressionMatchIterator it = mdxRx.allLinksRe.globalMatch( article );
|
QRegularExpressionMatchIterator it = mdxRx.allLinksRe.globalMatch( article );
|
||||||
|
|
28
slob.cc
28
slob.cc
|
@ -1589,32 +1589,8 @@ void SlobResourceRequest::run()
|
||||||
{
|
{
|
||||||
// Convert it
|
// Convert it
|
||||||
|
|
||||||
dataMutex.lock();
|
Mutex::Lock _( dataMutex );
|
||||||
|
GdTiff::tiff2img( data );
|
||||||
QImage img = QImage::fromData( reinterpret_cast< const uchar * >( resource.data() ), resource.size() );
|
|
||||||
|
|
||||||
#ifdef MAKE_EXTRA_TIFF_HANDLER
|
|
||||||
if( img.isNull() )
|
|
||||||
GdTiff::tiffToQImage( &data.front(), data.size(), img );
|
|
||||||
#endif
|
|
||||||
|
|
||||||
dataMutex.unlock();
|
|
||||||
|
|
||||||
if ( !img.isNull() )
|
|
||||||
{
|
|
||||||
// Managed to load -- now store it back as BMP
|
|
||||||
|
|
||||||
QByteArray ba;
|
|
||||||
QBuffer buffer( &ba );
|
|
||||||
buffer.open( QIODevice::WriteOnly );
|
|
||||||
img.save( &buffer, "BMP" );
|
|
||||||
|
|
||||||
Mutex::Lock _( dataMutex );
|
|
||||||
|
|
||||||
data.resize( buffer.size() );
|
|
||||||
|
|
||||||
memcpy( &data.front(), buffer.data(), data.size() );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
29
stardict.cc
29
stardict.cc
|
@ -1731,33 +1731,8 @@ void StardictResourceRequest::run()
|
||||||
{
|
{
|
||||||
// Convert it
|
// Convert it
|
||||||
|
|
||||||
dataMutex.lock();
|
Mutex::Lock _( dataMutex );
|
||||||
|
GdTiff::tiff2img( data );
|
||||||
QImage img = QImage::fromData( (unsigned char *) &data.front(),
|
|
||||||
data.size() );
|
|
||||||
|
|
||||||
#ifdef MAKE_EXTRA_TIFF_HANDLER
|
|
||||||
if( img.isNull() )
|
|
||||||
GdTiff::tiffToQImage( &data.front(), data.size(), img );
|
|
||||||
#endif
|
|
||||||
|
|
||||||
dataMutex.unlock();
|
|
||||||
|
|
||||||
if ( !img.isNull() )
|
|
||||||
{
|
|
||||||
// Managed to load -- now store it back as BMP
|
|
||||||
|
|
||||||
QByteArray ba;
|
|
||||||
QBuffer buffer( &ba );
|
|
||||||
buffer.open( QIODevice::WriteOnly );
|
|
||||||
img.save( &buffer, "BMP" );
|
|
||||||
|
|
||||||
Mutex::Lock _( dataMutex );
|
|
||||||
|
|
||||||
data.resize( buffer.size() );
|
|
||||||
|
|
||||||
memcpy( &data.front(), buffer.data(), data.size() );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if( Filetype::isNameOfCSS( resourceName ) )
|
if( Filetype::isNameOfCSS( resourceName ) )
|
||||||
|
|
22
tiff.cc
22
tiff.cc
|
@ -139,6 +139,28 @@ bool tiffToQImage( const char * data, int size, QImage & image )
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void tiff2img( vector< char > & data, const char * format )
|
||||||
|
{
|
||||||
|
QImage img = QImage::fromData( (unsigned char *)&data.front(), data.size() );
|
||||||
|
|
||||||
|
#ifdef MAKE_EXTRA_TIFF_HANDLER
|
||||||
|
if( img.isNull() )
|
||||||
|
tiffToQImage( &data.front(), data.size(), img );
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if( !img.isNull() )
|
||||||
|
{
|
||||||
|
QByteArray ba;
|
||||||
|
QBuffer buffer( &ba );
|
||||||
|
buffer.open( QIODevice::WriteOnly );
|
||||||
|
img.save( &buffer, format );
|
||||||
|
|
||||||
|
data.resize( buffer.size() );
|
||||||
|
memcpy( &data.front(), buffer.data(), data.size() );
|
||||||
|
buffer.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
5
tiff.hh
5
tiff.hh
|
@ -4,7 +4,8 @@
|
||||||
#ifdef MAKE_EXTRA_TIFF_HANDLER
|
#ifdef MAKE_EXTRA_TIFF_HANDLER
|
||||||
|
|
||||||
#include <QImage>
|
#include <QImage>
|
||||||
|
#include <vector>
|
||||||
|
using std::vector;
|
||||||
namespace GdTiff
|
namespace GdTiff
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -12,7 +13,7 @@ namespace GdTiff
|
||||||
// We will handle such 1-bit b/w images with default photometric
|
// We will handle such 1-bit b/w images with default photometric
|
||||||
|
|
||||||
bool tiffToQImage( const char * data, int size, QImage & image );
|
bool tiffToQImage( const char * data, int size, QImage & image );
|
||||||
|
void tiff2img( vector< char > & data, const char * format = "webp" );
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
30
xdxf.cc
30
xdxf.cc
|
@ -1091,34 +1091,8 @@ void XdxfResourceRequest::run()
|
||||||
if ( Filetype::isNameOfTiff( resourceName ) )
|
if ( Filetype::isNameOfTiff( resourceName ) )
|
||||||
{
|
{
|
||||||
// Convert it
|
// Convert it
|
||||||
|
Mutex::Lock _( dataMutex );
|
||||||
dataMutex.lock();
|
GdTiff::tiff2img( data );
|
||||||
|
|
||||||
QImage img = QImage::fromData( (unsigned char *) &data.front(),
|
|
||||||
data.size() );
|
|
||||||
|
|
||||||
#ifdef MAKE_EXTRA_TIFF_HANDLER
|
|
||||||
if( img.isNull() )
|
|
||||||
GdTiff::tiffToQImage( &data.front(), data.size(), img );
|
|
||||||
#endif
|
|
||||||
|
|
||||||
dataMutex.unlock();
|
|
||||||
|
|
||||||
if ( !img.isNull() )
|
|
||||||
{
|
|
||||||
// Managed to load -- now store it back as BMP
|
|
||||||
|
|
||||||
QByteArray ba;
|
|
||||||
QBuffer buffer( &ba );
|
|
||||||
buffer.open( QIODevice::WriteOnly );
|
|
||||||
img.save( &buffer, "BMP" );
|
|
||||||
|
|
||||||
Mutex::Lock _( dataMutex );
|
|
||||||
|
|
||||||
data.resize( buffer.size() );
|
|
||||||
|
|
||||||
memcpy( &data.front(), buffer.data(), data.size() );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Mutex::Lock _( dataMutex );
|
Mutex::Lock _( dataMutex );
|
||||||
|
|
29
zim.cc
29
zim.cc
|
@ -1424,33 +1424,8 @@ void ZimResourceRequest::run()
|
||||||
if ( Filetype::isNameOfTiff( resourceName ) )
|
if ( Filetype::isNameOfTiff( resourceName ) )
|
||||||
{
|
{
|
||||||
// Convert it
|
// Convert it
|
||||||
|
Mutex::Lock _( dataMutex );
|
||||||
dataMutex.lock();
|
GdTiff::tiff2img( data );
|
||||||
|
|
||||||
QImage img = QImage::fromData( reinterpret_cast< const uchar * >( resource.data() ), resource.size() );
|
|
||||||
|
|
||||||
#ifdef MAKE_EXTRA_TIFF_HANDLER
|
|
||||||
if( img.isNull() )
|
|
||||||
GdTiff::tiffToQImage( &data.front(), data.size(), img );
|
|
||||||
#endif
|
|
||||||
|
|
||||||
dataMutex.unlock();
|
|
||||||
|
|
||||||
if ( !img.isNull() )
|
|
||||||
{
|
|
||||||
// Managed to load -- now store it back as BMP
|
|
||||||
|
|
||||||
QByteArray ba;
|
|
||||||
QBuffer buffer( &ba );
|
|
||||||
buffer.open( QIODevice::WriteOnly );
|
|
||||||
img.save( &buffer, "BMP" );
|
|
||||||
|
|
||||||
Mutex::Lock _( dataMutex );
|
|
||||||
|
|
||||||
data.resize( buffer.size() );
|
|
||||||
|
|
||||||
memcpy( &data.front(), buffer.data(), data.size() );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue