Coder Social home page Coder Social logo

jacobdev1 / xl-converter Goto Github PK

View Code? Open in Web Editor NEW
115.0 2.0 4.0 152.23 MB

Easy-to-use image converter for modern formats. Supports multithreading, drag 'n drop, and downscaling.

Home Page: https://codepoems.eu/xl-converter

License: Other

Python 98.54% Makefile 0.28% Inno Setup 0.65% Shell 0.52%
converter jpeg-xl avif webp jpeg png image-resizer

xl-converter's People

Contributors

jacobdev1 avatar thejaredwilcurt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

xl-converter's Issues

note: Your software is added to AM package manager repo

AM is a bash package manager of portable apps for Linux, which contains a repo of AppImage & .tar.gz scripts to download, update, remove & integrate supported apps into desktop environment. With a note that AppImage is main format for AM.

PRs which added your software:
ivan-hc/AM@2ed8c08
Portable-Linux-Apps/Portable-Linux-Apps.github.io@3688b8c

Info about the project:
https://github.com/ivan-hc/AM

I used your software because it's the only one I know which supports JPEG-XL format for converting images in form of GUI.

libjxl packaged for Fedora doesn't support manipulation of images for some reason,
distroboxes are clunky to setup &
flatpaks which support JPEG-XL converting are not available.

Thanks for your work!

Feature request: JPEGLI encoder - option for chroma subsampling (4:4:4, 4:2:2 and 4:2:0)

First thank you for your hard work and great tool for picture conversion!
It is one of the first one which efficiency use the new jpeg encoder jpegli with fantastic results in quality and size.

I intense tested the jpegli encoder of the JPEGXL 0.10.2 package under windows and
some settings are very interesting for better compression and an equal good quality.

The settings for chroma sub sampling (switch e.g. --chroma_subsampling=420) would be a nice option
to reduce the filesize with very small quality reduction.

I tried to analyse your sourcecode, but did not find the programcode which set the chroma subsampling.

If you want to enhance your xl-converter it would be nice to set chroma subsampling (4:4:4, 4:2:2 or 4:2:0).

Further there is an option for progressive jpeg (--progressive_level=0..2).
You can save further space for the saved picture.

Do your program use it or is there a default value?

Improved display of the current conversion process and result

I propose to add a docked window at the bottom of the program window, where the current process would be displayed: what files are currently being processed, their size, format and location; if an error occurs, there should be a message in red (an audio signal is also possible). At the end, the total size of the incoming files, the files after conversion and the difference should be indicated.

I'm not saying this is absolutely necessary, but if you someday want to improve your program and sharpen your programming skills at the same time, here's an area where you can put your efforts.

Issues converting gifs to jxl

So i have about 145 gifs that i wanted converted and their filesize reduced. Put them all in the program, gave it lossless intelligent conversion and left it for several hours. Came back to progress (and program) stuck at 92%. Restarting it with skipping converted files option makes it skip all of them. Some gifs themselves are slowed down too much as well. Don't think it's size related. Program doesn't have a viewable log so Win10 22H2, i7-8700k, 24gig ram is all the relevant info i can think of.

Building doc error

In the 'Building' section for Windows, the command to install dependencies should be pip install -r requirements instead of 'python install -r requirements`

Sometimes, for some unknown reason, after JXL->JPG reconstruction, PNG files appear along with JPG

Let me clarify that the files have the same name, but different extensions. I have not yet discovered any patterns, I can only say that both types of files open normally in the viewer and look the same. As I understand it, if enable the "PNG Fallback" option, then a PNG should be created when it is impossible to "unpack" the JPG from JXL. However, all the files in the folder were created at once with the same encoding parameters and the JPG was successfully unpacked. What's going on?

I cannot provide these files.

Strange behavior of the program

Previously, when encoding JPG to JXL (lossless, not Modular), if set the parameter to "effort 10" and then enable "intelligent", the process went quickly. It seems that the second option cancels the effect of the first. But now it seems that "intelligent" has no effect on anything. Or am I misunderstanding something.

Please explain the logic of the converter’s behavior in this situation (description below)

Suppose there are several files in one folder with the same name, but in different formats (which the converter understands). If I send them for processing at the same time (multithreading option), what will happen then? Will the converter consider that some files have supposedly already been processed and skip them? Or will it silently delete and overwrite the file? I'm guessing you've added some logic to handle this situation, however I'm not sure if this will work in multi-threading.

On Windows, doesn't support Unicode paths (at least for JXL ouput)

When trying to tell it to process files in a path or a filename that has Japanese characters (like numbered files that have "cover" at the start of the name but in a directory called "劇場版") it just ends almost instantly and processes nothing but when I rename the folder or files to have nothing but ANSI characters and it works as expected.

I haven't tried the other formats but this happens with JXL for sure.

A few notes about VC Redist

I have come across a situation many times where after installing some random program, many other programs suddenly stopped working. And each time the reason was that that program silently installed outdated versions of VC Redist. I was forced to uninstall all versions of VC Redist and use a special installer (this or this), which would sequentially install the required versions. I also had to use a third-party program (Process Lasso) to prevent these things from being installed secretly.

Therefore, I suggest that you do not repeat the mistakes of others (after all, the version that your converter installs will also one day become outdated) and at least during installation offer a choice whether to install VC Redist or not.

Always fails

Version 1.0.0 AppImage, Ubuntu 24.04
Conversions always fail with attached log files :
xl_converter_exceptions JPG.csv
xl_converter_exceptions JXL.csv
xl_converter_exceptions webp.csv

Terminal output :

Failed to load module: /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so
/usr/lib/x86_64-linux-gnu/gvfs/libgvfscommon.so: undefined symbol: g_task_set_static_name
Failed to load module: /usr/lib/x86_64-linux-gnu/gio/modules/libgvfsdbus.so
/usr/lib/x86_64-linux-gnu/gvfs/libgvfscommon.so: undefined symbol: g_task_set_static_name
Failed to load module: /usr/lib/x86_64-linux-gnu/gio/modules/libgioremote-volume-monitor.so
/usr/lib/x86_64-linux-gnu/gvfs/libgvfscommon.so: undefined symbol: g_task_set_static_name
Failed to load module: /usr/lib/x86_64-linux-gnu/gio/modules/libgvfsdbus.so
/usr/lib/x86_64-linux-gnu/gvfs/libgvfscommon.so: undefined symbol: g_task_set_static_name
Failed to load module: /usr/lib/x86_64-linux-gnu/gio/modules/libgioremote-volume-monitor.so

(xl-converter:123966): Gtk-WARNING **: 19:18:34.752: /usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/im-wayland.so: undefined symbol: g_string_free_and_steal

(xl-converter:123966): Gtk-WARNING **: 19:18:34.752: Loading IM context type 'wayland' failed

(xl-converter:123966): Gtk-WARNING **: 19:18:34.756: /usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/im-wayland.so: undefined symbol: g_string_free_and_steal

(xl-converter:123966): Gtk-WARNING **: 19:18:34.756: Loading IM context type 'wayland' failed

(xl-converter:123966): Gtk-WARNING **: 19:18:34.756: /usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/im-wayland.so: undefined symbol: g_string_free_and_steal

(xl-converter:123966): Gtk-WARNING **: 19:18:34.756: Loading IM context type 'wayland' failed

(xl-converter:123966): Gtk-WARNING **: 19:18:34.757: /usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/im-wayland.so: undefined symbol: g_string_free_and_steal

(xl-converter:123966): Gtk-WARNING **: 19:18:34.757: Loading IM context type 'wayland' failed

** (xl-converter:123966): WARNING **: 19:18:48.440: atk-bridge: get_device_events_reply: unknown signature
/usr/lib/x86_64-linux-gnu/gvfs/libgvfscommon.so: undefined symbol: g_task_set_static_name
Failed to load module: /usr/lib/x86_64-linux-gnu/gio/modules/libgvfsdbus.so
/usr/lib/x86_64-linux-gnu/gvfs/libgvfscommon.so: undefined symbol: g_task_set_static_name
Failed to load module: /usr/lib/x86_64-linux-gnu/gio/modules/libgioremote-volume-monitor.so

(xl-converter:123966): Gtk-WARNING **: 19:19:04.978: /usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/im-wayland.so: undefined symbol: g_string_free_and_steal

(xl-converter:123966): Gtk-WARNING **: 19:19:04.978: Loading IM context type 'wayland' failed

(xl-converter:123966): Gtk-WARNING **: 19:19:04.982: /usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/im-wayland.so: undefined symbol: g_string_free_and_steal

(xl-converter:123966): Gtk-WARNING **: 19:19:04.982: Loading IM context type 'wayland' failed

(xl-converter:123966): Gtk-WARNING **: 19:19:04.983: /usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/im-wayland.so: undefined symbol: g_string_free_and_steal

(xl-converter:123966): Gtk-WARNING **: 19:19:04.983: Loading IM context type 'wayland' failed

(xl-converter:123966): Gtk-WARNING **: 19:19:04.983: /usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/im-wayland.so: undefined symbol: g_string_free_and_steal

(xl-converter:123966): Gtk-WARNING **: 19:19:04.983: Loading IM context type 'wayland' failed

(xl-converter:123966): Gtk-WARNING **: 19:19:04.985: /usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/im-wayland.so: undefined symbol: g_string_free_and_steal

(xl-converter:123966): Gtk-WARNING **: 19:19:04.985: Loading IM context type 'wayland' failed

(xl-converter:123966): Gtk-WARNING **: 19:19:04.988: /usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/im-wayland.so: undefined symbol: g_string_free_and_steal

(xl-converter:123966): Gtk-WARNING **: 19:19:04.988: Loading IM context type 'wayland' failed
/usr/lib/x86_64-linux-gnu/gvfs/libgvfscommon.so: undefined symbol: g_task_set_static_name
Failed to load module: /usr/lib/x86_64-linux-gnu/gio/modules/libgvfsdbus.so
/usr/lib/x86_64-linux-gnu/gvfs/libgvfscommon.so: undefined symbol: g_task_set_static_name
Failed to load module: /usr/lib/x86_64-linux-gnu/gio/modules/libgioremote-volume-monitor.so

(xl-converter:123966): Gtk-WARNING **: 19:19:27.234: /usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/im-wayland.so: undefined symbol: g_string_free_and_steal

(xl-converter:123966): Gtk-WARNING **: 19:19:27.234: Loading IM context type 'wayland' failed

(xl-converter:123966): Gtk-WARNING **: 19:19:27.238: /usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/im-wayland.so: undefined symbol: g_string_free_and_steal

(xl-converter:123966): Gtk-WARNING **: 19:19:27.238: Loading IM context type 'wayland' failed

(xl-converter:123966): Gtk-WARNING **: 19:19:27.238: /usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/im-wayland.so: undefined symbol: g_string_free_and_steal

(xl-converter:123966): Gtk-WARNING **: 19:19:27.238: Loading IM context type 'wayland' failed

(xl-converter:123966): Gtk-WARNING **: 19:19:27.239: /usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/im-wayland.so: undefined symbol: g_string_free_and_steal

(xl-converter:123966): Gtk-WARNING **: 19:19:27.239: Loading IM context type 'wayland' failed

(xl-converter:123966): Gtk-WARNING **: 19:19:27.240: /usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/im-wayland.so: undefined symbol: g_string_free_and_steal

(xl-converter:123966): Gtk-WARNING **: 19:19:27.240: Loading IM context type 'wayland' failed

(xl-converter:123966): Gtk-WARNING **: 19:19:27.244: /usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/im-wayland.so: undefined symbol: g_string_free_and_steal

(xl-converter:123966): Gtk-WARNING **: 19:19:27.244: Loading IM context type 'wayland' failed
/usr/lib/x86_64-linux-gnu/gvfs/libgvfscommon.so: undefined symbol: g_task_set_static_name
Failed to load module: /usr/lib/x86_64-linux-gnu/gio/modules/libgvfsdbus.so
/usr/lib/x86_64-linux-gnu/gvfs/libgvfscommon.so: undefined symbol: g_task_set_static_name
Failed to load module: /usr/lib/x86_64-linux-gnu/gio/modules/libgioremote-volume-monitor.so

(xl-converter:123966): Gtk-WARNING **: 19:20:35.459: /usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/im-wayland.so: undefined symbol: g_string_free_and_steal

(xl-converter:123966): Gtk-WARNING **: 19:20:35.459: Loading IM context type 'wayland' failed

(xl-converter:123966): Gtk-WARNING **: 19:20:35.463: /usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/im-wayland.so: undefined symbol: g_string_free_and_steal

(xl-converter:123966): Gtk-WARNING **: 19:20:35.463: Loading IM context type 'wayland' failed

(xl-converter:123966): Gtk-WARNING **: 19:20:35.464: /usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/im-wayland.so: undefined symbol: g_string_free_and_steal

(xl-converter:123966): Gtk-WARNING **: 19:20:35.464: Loading IM context type 'wayland' failed

(xl-converter:123966): Gtk-WARNING **: 19:20:35.464: /usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/im-wayland.so: undefined symbol: g_string_free_and_steal

(xl-converter:123966): Gtk-WARNING **: 19:20:35.464: Loading IM context type 'wayland' failed

(xl-converter:123966): Gtk-WARNING **: 19:20:35.466: /usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/im-wayland.so: undefined symbol: g_string_free_and_steal

(xl-converter:123966): Gtk-WARNING **: 19:20:35.466: Loading IM context type 'wayland' failed

(xl-converter:123966): Gtk-WARNING **: 19:20:35.469: /usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/im-wayland.so: undefined symbol: g_string_free_and_steal

(xl-converter:123966): Gtk-WARNING **: 19:20:35.469: Loading IM context type 'wayland' failed

Some JPG files do not open for no apparent reason

However, these files open perfectly in different image viewing programs and do not have any visual defects anywhere. Here is an example of such an image; there are 230 photos in this series, and the converter cannot process only one.

I suggest adding some JPG decoders and if an error occurs, try using them. Of course, it would be desirable for this situation to be displayed in the log.

Small bug with the interface

After start the conversion, a progress window will appear. If minimize the program window and then restore it, the progress window will be compressed vertically. If minimize and restore again, only the title of this window will remain visible.

Let me clarify that I have a 1920*1080 display and 25% image scaling is activated in the Windows settings. I don't know if this has anything to do with the bug.

Some gifs do not convert

Hello. Win10, 22h2, cpu 5700x. Converted a large batch of gifs and some of them gave me errors without really explaining what that error is. I tried converting them to webp as well and they all came out empty, zero bytes.
xl_converter_exceptions.csv

JPEG XL version 0.10.0

Will XL Converter update the JPEG XL from version 0.8.1 to version 0.10.0?

I created a pull request for Windows (e0bbe3f) before I realize you said you will ignore PL in the README.

Exif Data

Exif metadata fails to be carried over to the converted file no matter what settings I use. I've used both the encoder and Exiftool for metadata preservation. This is a deal breaker for me, since I have a lot of photographs that I'd like to convert.

Feature request: Create directory structure from source to destination directory

First thank you for your great and fast picture converter.

I have a directory structure for my photos (main folder with different subfolders) and want to convert them to a destination dirctory.
My problem is, that your program can not create directories and subdirectories from the source folder and create them in the destination folder. Is it possible to add this feature in one of the next releases? That would be fantastic. Thank you in advance.

Flatpak

Lovely app this! Is there any chance it could show up in Flathub?

Show versions of encoders in release notes

There was a lot of improvements for lossless JPEG XL encoding in version 0.10 of libjxl. Looking at the release notes for 0.9.7 of XL Converter I can’t tell if it uses libjxl 0.10 or later. It would be good if release notes for XL Converter showed encoder versions.

Support of TIFF file Format

Hi Jacob,
Thanks for a great software and easy to use !
I understand that addition of new format can be tedious. As you suggested in your code, I tried to add Tiff with Image Magick.
I was able to convert tiff files but with some caveats.

  1. Size of final JPEG only reduced to a certain extent.
  • Observation 1: When initial JPEG is generated from the output of conversion of TIFF File, you can run the Conversion again on the JPEG to bring it to the correct size.

image
image

Properties of Image after Double Conversion.

  • Observation 2: We can also do Down Scaling in terms of Physical Dimensions or reduction in quality of JPEG. Hence multi downscale options might be required for TIFFs with priority, which one to do first.

image
image

Images Comparing Details of Original TIFF and JPEG Converted with Final Image Size

  1. Auto Choosing the Encoder, I had to choose Image Magick as encoder manually as I knew it supported (Other one Failed). When Tiff Image is used, automatic change to Image Magick will require some modifications.
Version 0.9.9  
OS Windows  
     
Output    
format JPG  
quality 100  
lossless False  
lossless_if_smaller False  
max_compression False  
effort 7  
intelligent_effort False  
reconstruct_jpg True  
jxl_mode Default  
jpg_encoder JPEGLI from JPEG XL  
if_file_exists Rename  
custom_output_dir True  
keep_dir_struct False  
delete_original False  
delete_original_mode To Trash  
smallest_format_pool [('png', True), ('webp', True), ('jxl', True)]  
     
Downscaling    
enabled True  
mode File Size  
percent 80  
width 2000  
height 2000  
file_size 9700  
shortest_side 1080  
longest_side 1920  
resample Default  
     
Misc.    
keep_metadata Encoder - Wipe  
attributes False  
     
Exceptions    
ID Exception Extension
P2 Conversion failed, output not found. .tif

Try to add this when you have time !

Stuck right at the end

First: thanks for the app; it's great!

I'm using xl-converter-win-0.9.4-x86_64.exe in Windows 11.

Second time in a large batch conversion it gets stuck right at the end like this:

image

I literally plan to gift this app to my mom for Christmas. She's older and has a massive collection of family photos in very suboptimal formats.

Metadata preservation with ExifTool doesn't seem to work.

The "ExifTool - Preserve" does not copy over any metadata to the resulting .jxl file. Tested with multiple .jpg and .png inputs

I have reinstalled exiftool and xl converter yet this persists. ExifTool is also in PATH and functions from there by itself

The installer no longer asks where to install the program. This is bad practice.

Why? I usually install in Program Files / Program Files (x86) only those programs that are integrated into the system (for example, Windows resets file associations if the program is installed in another location). And all the rest are in another folder C:\MyPrograms - this allows them to maintain a certain amount of portability when the settings are written to the program folder, which is quite convenient if I have to reinstall Windows.

Strange behavior of the converter when the disk space runs out

I converted a lot of files (JPG to JXL), and at a certain point I noticed that the result files became very small. More precisely, the first result in the list was small, and the remaining files were zero size. Unfortunately, I did not track the situation properly at that time and, perhaps, some of the files were completely deleted.

I suggest you add a check for free space to the converter (so that user can specify it in the settings), which should take place not only when the conversion starts, but also periodically during the process. If you have any better ideas on how to avoid this problem, please share.

It is also advisable to add a check for the difference in size between the incoming and outgoing files. If the difference is too large (user can adjust the percentage), then this should be displayed in the log and the incoming file should not be deleted.

AVIF | Use all available CPU resources - parallel jobs/workers

Hello,

Thank you for your great application,
i use it to convert images to Avif, but conversion speed does not use all available CPU resources (Ryzen 3900x)
and it fluctuates from 5% to 50%. so average ~25%.

Could you please add a function to select the number of parallel jobs/workers, as implemented in MegaPixel and in MegaPixel-Qt by Alkl58 (also Python language), when converting to Avif. MegaPixel convert images to Avif about ~4 times faster, by using all CPU resources.
But, your application better realised and more convenient to use.

Thank you for all your great work.

2024-04-15_185902

Linux installer does not work

Hi,

The linux installer does not work, due to a mistake in the install.sh script

install.sh: line 64 : [: == : unary operator expected

To fix it, just on line 64:

     if [ $choice == "1" ]; then

by

     if [ $choice = "1" ]; then

Save, installs runs now...

"Disable Delete Original on Startup" not working.

Repoduce:

  1. Install version 0.9.8.
  2. Open "Settings" tab.
  3. Enable "Disable Delete Original on Startup" option.
  4. Open "Output" tab.
  5. Enable "Delete Original" option.
  6. Close the software.
  7. Open the software.
  8. Open "Output" tab.
  9. "Delete Original" option still enabled.

Expectation:

  • The option is disabled every startup.

Please create a portable version

It would be really handy to have a portable version of this app, a simple archive that can be downloaded and extracted. Thanks.

The error log window definitely needs improvement

  1. I'm using a light theme, but this window still remains dark. In addition, gray font on a black background is difficult to see. On the contrary, such things need to be made clearly visible.

  2. Sometimes I needed to see the file name in this window, but by default the width of the name column is too narrow, and when I tried to change the column size, it turned out that this was not possible.

  3. If I started the conversion, then minimized the window, the process ended with errors and I try to switch to the program using Alt-Tab, then I switch only to the log window. If I close this window, the main program window will still be minimized.

Lossless jpeg<->jxl conversion "misleading" UI

First, I'm a new user so sorry if I don't get all the understanding of xl-converter settings.
But from my knowledge of jxl, I had difficult time to try to understand what the conversion will do. So maybe I won't be the only one...

If the user want to convert from jpeg to jxl, the UI is not really clear if it will do a lossless conversion from jpeg to jxl or if it will convert the jpeg to the lossless jxl format. After finding and testing the "Reconstruct JPG from JPEG XL" setting, I now know that it is doing the 1st one. But both could make sense in different use cases.

I have the feeling that the "Lossless" option has a different behavior depending on the input format and it's difficult for the user to understand it:

  • for input in jpg, lossless conversion to jxl (so file is in fact in lossy format)
  • for other input formats, output file is in jxl lossless format.

I think some feedback/explanation to the user would be good.
Or some UI changes in the settings. 2 possibilities:

  • a "Lossless conversion from JPG" option
  • 2 different "JPEG XL lossy" and "JPEG XL lossless" output formats.

Another thing:
Is there a good reason to have put the jxl->jpeg lossless conversion "Reconstruct JPG from JPEG XL" in the PNG output format? Or is it a bug?

image

Because I would never look at it here if I wanted to use that feature. It makes more sense to have it in "JPG" format options for me.

Thanks in advance for the feedback.

Note: XL Converter v1.0.0 (Windows)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.