mirror of https://github.com/buggins/dlangui.git
get rid of FreeImage: use dlib image instead for loading PNGs and BMPs
This commit is contained in:
parent
eb8ca97878
commit
1fc0db9e02
|
@ -47,7 +47,7 @@
|
||||||
<compiler>0</compiler>
|
<compiler>0</compiler>
|
||||||
<otherDMD>0</otherDMD>
|
<otherDMD>0</otherDMD>
|
||||||
<program>$(DMDInstallDir)windows\bin\dmd.exe</program>
|
<program>$(DMDInstallDir)windows\bin\dmd.exe</program>
|
||||||
<imppath>3rdparty ../DerelictGL3/source ../DerelictUtil/source ../DerelictFT/source ../de_image/source/interfaces ../de_image/source/png</imppath>
|
<imppath>3rdparty ../DerelictGL3/source ../DerelictUtil/source ../DerelictFT/source ../de_image/source/interfaces ../de_image/source/png $(SolutionDir)/../dlib</imppath>
|
||||||
<fileImppath />
|
<fileImppath />
|
||||||
<outdir>$(ConfigurationName)</outdir>
|
<outdir>$(ConfigurationName)</outdir>
|
||||||
<objdir>$(OutDir)</objdir>
|
<objdir>$(OutDir)</objdir>
|
||||||
|
@ -250,6 +250,37 @@
|
||||||
<File path="..\de_image\source\png\devisualization\image\png\writer_chunks.d" />
|
<File path="..\de_image\source\png\devisualization\image\png\writer_chunks.d" />
|
||||||
<File path="..\de_image\source\png\devisualization\image\png\writer_chunks_IDAT.d" />
|
<File path="..\de_image\source\png\devisualization\image\png\writer_chunks_IDAT.d" />
|
||||||
</Folder>
|
</Folder>
|
||||||
|
<Folder name="dlib_image">
|
||||||
|
<File path="..\dlib\dlib\image\io\bitio.d" />
|
||||||
|
<File path="..\dlib\dlib\image\io\bmp.d" />
|
||||||
|
<File path="..\dlib\dlib\image\color.d" />
|
||||||
|
<File path="..\dlib\dlib\filesystem\windows\common.d" />
|
||||||
|
<File path="..\dlib\dlib\core\compound.d" />
|
||||||
|
<File path="..\dlib\dlib\math\decomposition.d" />
|
||||||
|
<File path="..\dlib\dlib\filesystem\delegaterange.d" />
|
||||||
|
<File path="..\dlib\dlib\filesystem\windows\directory.d" />
|
||||||
|
<File path="..\dlib\dlib\filesystem\dirrange.d" />
|
||||||
|
<File path="..\dlib\dlib\filesystem\windows\file.d" />
|
||||||
|
<File path="..\dlib\dlib\filesystem\filesystem.d" />
|
||||||
|
<File path="..\dlib\dlib\image\io\huffman.d" />
|
||||||
|
<File path="..\dlib\dlib\image\io\idct.d" />
|
||||||
|
<File path="..\dlib\dlib\image\image.d" />
|
||||||
|
<File path="..\dlib\dlib\math\interpolation.d" />
|
||||||
|
<File path="..\dlib\dlib\image\io\io.d" />
|
||||||
|
<File path="..\dlib\dlib\image\io\jpeg.d" />
|
||||||
|
<File path="..\dlib\dlib\math\linsolve.d" />
|
||||||
|
<File path="..\dlib\dlib\filesystem\local.d" />
|
||||||
|
<File path="..\dlib\dlib\math\matrix.d" />
|
||||||
|
<File path="..\dlib\dlib\image\io\png.d" />
|
||||||
|
<File path="..\dlib\dlib\functional\range.d" />
|
||||||
|
<File path="..\dlib\dlib\core\stream.d" />
|
||||||
|
<File path="..\dlib\dlib\image\io\tga.d" />
|
||||||
|
<File path="..\dlib\dlib\core\tuple.d" />
|
||||||
|
<File path="..\dlib\dlib\math\utils.d" />
|
||||||
|
<File path="..\dlib\dlib\image\io\utils.d" />
|
||||||
|
<File path="..\dlib\dlib\math\vector.d" />
|
||||||
|
<File path="..\dlib\dlib\image\io\zstream.d" />
|
||||||
|
</Folder>
|
||||||
<Folder name="win32">
|
<Folder name="win32">
|
||||||
<File path="3rdparty\win32\basetsd.d" />
|
<File path="3rdparty\win32\basetsd.d" />
|
||||||
<File path="3rdparty\win32\basetyps.d" />
|
<File path="3rdparty\win32\basetyps.d" />
|
||||||
|
|
6
dub.json
6
dub.json
|
@ -21,10 +21,6 @@
|
||||||
|
|
||||||
"copyFiles": ["res"],
|
"copyFiles": ["res"],
|
||||||
|
|
||||||
"copyFiles-windows": [
|
|
||||||
"lib/FreeImage.dll"
|
|
||||||
],
|
|
||||||
|
|
||||||
"sourceFiles": [
|
"sourceFiles": [
|
||||||
"project.ddoc"
|
"project.ddoc"
|
||||||
],
|
],
|
||||||
|
@ -94,9 +90,9 @@
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"derelict-sdl2": "~master",
|
"derelict-sdl2": "~master",
|
||||||
"derelict-gl3": "~master",
|
"derelict-gl3": "~master",
|
||||||
"derelict-fi": "~master",
|
|
||||||
"derelict-ft": "~master",
|
"derelict-ft": "~master",
|
||||||
"de_image:png": ">=0.2.3",
|
"de_image:png": ">=0.2.3",
|
||||||
|
"dlib": ">=0.4.0"
|
||||||
},
|
},
|
||||||
"-ddoxFilterArgs": ["--unittest-examples", "--min-protection=Protected", "--ex", "win32.", "--ex", "src.dlangui"]
|
"-ddoxFilterArgs": ["--unittest-examples", "--min-protection=Protected", "--ex", "win32.", "--ex", "src.dlangui"]
|
||||||
},
|
},
|
||||||
|
|
|
@ -47,7 +47,7 @@
|
||||||
<compiler>0</compiler>
|
<compiler>0</compiler>
|
||||||
<otherDMD>0</otherDMD>
|
<otherDMD>0</otherDMD>
|
||||||
<program>$(DMDInstallDir)windows\bin\dmd.exe</program>
|
<program>$(DMDInstallDir)windows\bin\dmd.exe</program>
|
||||||
<imppath>$(SolutionDir)/src $(SolutionDir)/3rdparty $(SolutionDir)/3rdparty/libpng/source $(SolutionDir)/../DerelictGL3/source $(SolutionDir)/../DerelictUtil/source $(SolutionDir)/../DerelictFT/source $(SolutionDir)/../DerelictSDL2/source $(SolutionDir)/../de_image/source/interfaces $(SolutionDir)/../de_image/source/png</imppath>
|
<imppath>$(SolutionDir)/src $(SolutionDir)/3rdparty $(SolutionDir)/3rdparty/libpng/source $(SolutionDir)/../DerelictGL3/source $(SolutionDir)/../DerelictUtil/source $(SolutionDir)/../DerelictFT/source $(SolutionDir)/../DerelictSDL2/source $(SolutionDir)/../de_image/source/interfaces $(SolutionDir)/../de_image/source/png $(SolutionDir)/../dlib</imppath>
|
||||||
<fileImppath />
|
<fileImppath />
|
||||||
<outdir>$(ConfigurationName)</outdir>
|
<outdir>$(ConfigurationName)</outdir>
|
||||||
<objdir>$(OutDir)</objdir>
|
<objdir>$(OutDir)</objdir>
|
||||||
|
|
|
@ -47,7 +47,7 @@
|
||||||
<compiler>0</compiler>
|
<compiler>0</compiler>
|
||||||
<otherDMD>0</otherDMD>
|
<otherDMD>0</otherDMD>
|
||||||
<program>$(DMDInstallDir)windows\bin\dmd.exe</program>
|
<program>$(DMDInstallDir)windows\bin\dmd.exe</program>
|
||||||
<imppath>$(SolutionDir)/src $(SolutionDir)/3rdparty $(SolutionDir)/3rdparty/libpng/source $(SolutionDir)/../DerelictGL3/source $(SolutionDir)/../DerelictUtil/source $(SolutionDir)/../DerelictFT/source $(SolutionDir)/../DerelictSDL2/source $(SolutionDir)/../de_image/source/interfaces $(SolutionDir)/../de_image/source/png</imppath>
|
<imppath>$(SolutionDir)/src $(SolutionDir)/3rdparty $(SolutionDir)/3rdparty/libpng/source $(SolutionDir)/../DerelictGL3/source $(SolutionDir)/../DerelictUtil/source $(SolutionDir)/../DerelictFT/source $(SolutionDir)/../DerelictSDL2/source $(SolutionDir)/../de_image/source/interfaces $(SolutionDir)/../de_image/source/png $(SolutionDir)/../dlib</imppath>
|
||||||
<fileImppath />
|
<fileImppath />
|
||||||
<outdir>$(ConfigurationName)</outdir>
|
<outdir>$(ConfigurationName)</outdir>
|
||||||
<objdir>$(OutDir)</objdir>
|
<objdir>$(OutDir)</objdir>
|
||||||
|
|
|
@ -47,7 +47,7 @@
|
||||||
<compiler>0</compiler>
|
<compiler>0</compiler>
|
||||||
<otherDMD>0</otherDMD>
|
<otherDMD>0</otherDMD>
|
||||||
<program>$(DMDInstallDir)windows\bin\dmd.exe</program>
|
<program>$(DMDInstallDir)windows\bin\dmd.exe</program>
|
||||||
<imppath>$(SolutionDir)/src $(SolutionDir)/3rdparty $(SolutionDir)/3rdparty/libpng/source $(SolutionDir)/../DerelictGL3/source $(SolutionDir)/../DerelictUtil/source $(SolutionDir)/../DerelictFT/source $(SolutionDir)/../DerelictSDL2/source $(SolutionDir)/../de_image/source/interfaces $(SolutionDir)/../de_image/source/png</imppath>
|
<imppath>$(SolutionDir)/src $(SolutionDir)/3rdparty $(SolutionDir)/3rdparty/libpng/source $(SolutionDir)/../DerelictGL3/source $(SolutionDir)/../DerelictUtil/source $(SolutionDir)/../DerelictFT/source $(SolutionDir)/../DerelictSDL2/source $(SolutionDir)/../de_image/source/interfaces $(SolutionDir)/../de_image/source/png $(SolutionDir)/../dlib</imppath>
|
||||||
<fileImppath />
|
<fileImppath />
|
||||||
<outdir>$(ConfigurationName)</outdir>
|
<outdir>$(ConfigurationName)</outdir>
|
||||||
<objdir>$(OutDir)</objdir>
|
<objdir>$(OutDir)</objdir>
|
||||||
|
|
Binary file not shown.
|
@ -21,17 +21,21 @@ Authors: Vadim Lopatin, coolreader.org@gmail.com
|
||||||
module dlangui.graphics.images;
|
module dlangui.graphics.images;
|
||||||
|
|
||||||
//immutable bool USE_FREEIMAGE = true;
|
//immutable bool USE_FREEIMAGE = true;
|
||||||
|
|
||||||
//version = USE_FREEIMAGE;
|
//version = USE_FREEIMAGE;
|
||||||
|
//version = USE_DEIMAGE;
|
||||||
version = USE_DEIMAGE;
|
version = USE_DLIBIMAGE;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
version (USE_DEIMAGE) {
|
version (USE_DEIMAGE) {
|
||||||
import devisualization.image;
|
import devisualization.image;
|
||||||
import devisualization.image.png;
|
import devisualization.image.png;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
version (USE_DLIBIMAGE) {
|
||||||
|
import dlib.image.io.io;
|
||||||
|
import dlib.image.image;
|
||||||
|
}
|
||||||
|
|
||||||
import dlangui.core.logger;
|
import dlangui.core.logger;
|
||||||
import dlangui.core.types;
|
import dlangui.core.types;
|
||||||
import dlangui.graphics.drawbuf;
|
import dlangui.graphics.drawbuf;
|
||||||
|
@ -41,7 +45,22 @@ import std.conv : to;
|
||||||
/// load and decode image from file to ColorDrawBuf, returns null if loading or decoding is failed
|
/// load and decode image from file to ColorDrawBuf, returns null if loading or decoding is failed
|
||||||
ColorDrawBuf loadImage(string filename) {
|
ColorDrawBuf loadImage(string filename) {
|
||||||
Log.d("Loading image from file " ~ filename);
|
Log.d("Loading image from file " ~ filename);
|
||||||
version (USE_DEIMAGE) {
|
version (USE_DLIBIMAGE) {
|
||||||
|
SuperImage image = dlib.image.io.io.loadImage(filename);
|
||||||
|
if (!image)
|
||||||
|
return null;
|
||||||
|
int w = image.width;
|
||||||
|
int h = image.height;
|
||||||
|
ColorDrawBuf buf = new ColorDrawBuf(w, h);
|
||||||
|
for (int y = 0; y < h; y++) {
|
||||||
|
uint * dstLine = buf.scanLine(y);
|
||||||
|
for (int x = 0; x < w; x++) {
|
||||||
|
auto pixel = image[x, h - 1 - y].convert(8);
|
||||||
|
dstLine[x] = makeRGBA(pixel.r, pixel.g, pixel.b, 255 - pixel.a);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return buf;
|
||||||
|
} else version (USE_DEIMAGE) {
|
||||||
try {
|
try {
|
||||||
Image image = imageFromFile(filename);
|
Image image = imageFromFile(filename);
|
||||||
int w = cast(int)image.width;
|
int w = cast(int)image.width;
|
||||||
|
|
Loading…
Reference in New Issue