Thanks for the suggestion. I ended up removing the Intel-specific tweaks altogether, since the code where it was used wasn't a performance bottleneck.
I386 feature should not be enabled on non-x86 architecutre
ps-crypt 1.11 breaks with development version of emacs
At least (make-vector 31 0) doesn't seem to break anything for me, so I'm happy to make that change.
Spelling error in manual page
Thanks. This is a duplicate of 0020-man-page-spelling-error.patch in the Debian distribution. Will be fixed in the next release.
Option to keep rather than wiping original files.
Yes, and also, the method mentioned in my response to feature request 8 works, i.e., you can do ccrypt < infile > outfile. This of course presupposes that you are using an operating system that understands pipelines, like "<" and ">". Certainly Mac OS and Linux do; with Windows, it may depend on what kind of command line prompt you are using.
I don't know, but I kept a copy :) I just put it here: http://potrace.sourceforge.net/thirdparty/Mallard/
I believe the failed test is caused by recent versions of the crypt3 library not being backward compatible. Please use the --disable-libcrypt configuration option (with ./configure). Then ccrypt will work correctly (although the crypt3 test may still fail). Also note that the crypt3 library is only used in unix-crypt mode, i.e., when ccrypt is used with the -u option. Hopefully this is extremely rarely used, as it's been about 25 years since unix crypt even existed. I'll remove this test and the...
Great! I'm glad it worked out.
OK, please watch this video: http://potrace.sourceforge.net/video/potrace-mac-install.mp4 If that still doesn't work, I recommend buying Image Vectorizer http://image-vectorizer.com/ . It's what people use on Macs.
If you've successfully installed Potrace, you should be able to open up a Terminal (that's what the command prompt is called on a Mac) and type "potrace -v" in it. It should output the version number and some information about Potrace. Then you can use Potrace in exactly the same way as you did on Windows.
That message is not related to Potrace. Apple is asking you to upgrade some software. You should ignore it, or not, but it has nothing to do with Potrace. In particular, it is not an error message. It is an informational message from Apple.
When entering a password, it is normal for the password characters not to be shown on the screen. This is to prevent a person looking over your shoulders from seeing the password. You have to enter the password and press enter.
Hi, thanks for writing and sorry for the delay in replying. I assume you've downloaded the file potrace-1.16.mac-x86_64.tar.gz, which is an archive containing a bunch of other files. Perhaps you are able to open this archive by double-clicking on it. Otherwise, you might try something like the following in a Terminal: cd ~/Downloads tar -zxf potrace-1.16.mac-x86_64.tar.gz cd potrace-1.16.mac-x86_64/ sudo bash cp potrace mkbitmap /usr/bin I don't have a Mac right now to try it on, so please let me...
Hi NickSoft, thanks for writing. That feature request makes a lot of sense. You have probably already discovered the "-v" option, which tells you which file is currently being encrypted (but does not the progress within each file). That is useful if you are encrypting many files and you want to know how many are finished. Not so useful if you just have one gigantic file. ccrypt is so fast that I never needed a progress bar before for any kind of normal sized file. But indeed, disk dumps are a bit...
At this point you are just flaming me. Here is the definition of "Encryption" from Wikipedia. The information you seem to be misunderstanding is right there in the 4th sentence: "In cryptography, encryption is the process of encoding information. This process converts the original representation of the information, known as plaintext, into an alternative form known as ciphertext. Ideally, only authorized parties can decipher a ciphertext back to plaintext and access the original information. Encryption...
I have added this question to the FAQ. The reason it was not there is that nobody has asked this question before. Perhaps not everybody skips the documentation.
Missing integrity protection
As this is not a bug report, I am closing it.
Yes, that is correct. The documentation also says this. From the man page: "On the other hand, ccrypt does not attempt to provide data integrity, i.e., it will not attempt to detect whether the ciphertext was modified after encryption. In particular, encrypted data can be truncated, leaving the corresponding decrypted data also truncated, but otherwise consistent. If one needs to ensure data integrity as well as secrecy, this can be achieved by other methods. The recommended method is to prepend...
Hi Ashleigh, there is no particular reason, except that Potrace has been on Sourceforge since 2003. That was five years before Github existed, and two years before Git existed. Sourceforge has hosted and supported open source software long before Microsoft (the current owner of Github) jumped on this bandwagon. It has always worked well for my purposes, and I suppose I didn't have any reason to change it. Out of curiosity: is there any reason you prefer Gibhub over Gitlab, Bitbucket, or any of the...
I don't know specific programs that do this either. But you could achieve replacing "<path d="M{x0} {y0} ..." by "<g transform="translate({x0},{y0})"><path d="M0 0 ..." with a relatively simple regular expression, such as sed 's/<path d="M\([0-9]*\) \([0-9]*\)/<g transform="translate(\1,\2)"><path d="M0 0/g' Just pipe the SVG output of Potrace through that command. You might have to add a few </g> tags as well, which can be done with a (more complicated) sed script, or an Awk script, or a Perl script,...
Use <defs> in SVG?
Hi Zvezdochiot, thanks for the suggestion. It sounds like this functionality could be implemented by modifying the output of Potrace, rather than modifying Potrace itself. I am guessing that there already exist some programs for manipulating SVG images that could do this, or it would be easy to write such a program. As such, I probably will not add this as a feature to Potrace.
Hi Ray, thanks for writing. No, unfortunately Potrace does not offer centerline tracing. From the FAQ: Question: Does Potrace provide centerline tracing? Instead of tracing the contour of my image, I just want a single line in the center of each stroke. Answer: No, Potrace is not designed to do centerline tracing, and for technical reasons, it is unlikely that this will change in the near future. Algorithms used for centerline tracing are quite different than those used for outline tracing; it might...
Hi Marc, Potrace does not output any stoked lines. It outputs filled areas. So setting a linewidth would not make sense. Best wishes, -- Peter
Potrace 1.16 released
different results depending on compiler optimizations
P.S.: another reason the tolerances must be adjusted from time to time is variations in Ghostscript. The test suite uses Ghostscript to render the traced files, and then compares the image to the expected output. Even small changes in Ghostscript's antialiasing routines can therefore require a recalibration of the test suite (not Potrace itself). It doesn't look like this was the problem in your user's case, but I thought I'd mention it since it does affect the reproducibility of the test suite.
Hi Martin, Potrace does use some floating point arithmetic, and due to rounding errors, the results can indeed depend on compiler optimizations (and presumably there might be a difference between 32-bit and 64-bit architectures as well, and between different compilers and OSs). One of the reasons is that processors internally use more than 64 bits to represent floating point numbers. Without compiler optimization, each intermediate result is converted to 64 bits, but with optimizations, the intermediate...
In that case it means that I myself could not have performed Solution #2 either? (Compiling myself) I don't know. You have one decisive advantage, which is that you actually own a copy of Windows XP. I imagine that whatever compiler comes with XP would probably work. I haven't had a computer running XP in many years, so it is hard for me to test.
Hi Spaceman, the problem is that likely I will not have access to an older compiler. But the changes to ccrypt in the last 15 years have been mostly compatibility updates, so there is nothing wrong in principle with using ccrypt 1.7. Is this the latest version that runs on XP? -- Peter
ccrypt on Windows XP
Thanks for reporting this. The error message likely means that the Windows XP kernel is too old to support this version of ccrypt. You have several options: (1) use an older precompiled version of ccrypt. You can find the older files here: http://ccrypt.sourceforge.net/download/ For example, release 1.7 from 2004 will most likely run on Windows XP. There have been no major bugfixes since 1.7, so this version will work just fine. (2) Compile it yourself from sources. This requires installing Cygwin...
Too many </g> markers in SVG output
OK, great. Thanks for confirming. I will close the ticket. Please feel free to open another one if you should encounter this issue again. (By the way, you need to use the --opaque and --group options to get multiple <g> tokens - this might help in replicating).
Thanks for reporting this, but I am not able to reproduce this problem. Could you please post the command line arguments you used, and attach the resulting SVG file? When I try to run a similar example, I get: 1 token of the form <g transform="..." fill="..." stroke="..."> 33 tokens of the form <g> without attributes 34 tokens of the form </g> This seems like correct SVG to me. -- Peter Edit: the sourceforge editor inserted additional </g> tags in my message above. Correcting.
Thanks for reporting this, but I am not able to reproduce this problem. Could you please post the command line arguments you used, and attach the resulting SVG file? When I try to run a similar example, I get: 1 token of the form <g stroke="..." transform="..." fill="..."></g> 33 tokens of the form <g> without attributes</g> 34 tokens of the form This seems like correct SVG to me. -- Peter
Thanks for reporting this. I will fix this bug in the next release. It may be caused by an incompatibility between the GNU getopt library and the one included in cygwin. Meanwhile, please configure with ./configure --with-included-getopt This should make the problem go away. Thanks, -- Peter
Thanks for reporting this. I will fix this bug in the next release. It may be caused by an incompatibility between the GNU getopt library and the one included in cygwin. Meanwhile, please configure with configure --with-included-getopt This should make the problem go away. Thanks, -- Peter
ps-ccrypt broken on Emacs 26.1
This was fixed in ccrypt 1.11.
ccrypt 1.11 released
Thanks for reporting this. I have not yet upgraded to Emacs 26, so I didn't experience this bug myself. I have put an updated version of ps-ccrypt.el here: http://ccrypt.sourceforge.net/#news I will release an updated version of ccrypt soon. -- Peter
Hi Milad, the Potrace API is only for tracing. It doesn't deal with reading BMP files or writing SVG. You could use other existing libraries for these tasks (libbmp for reading BMP files? Cairo for outputting graphics?). Or you could somehow repurpose the code in bitmap_io.c and backend_svg.c. It's not designed as a library though, and it uses global variables, e.g., the info structure defined in main. It would require a bit of refactoring.
Hi Milad, you can't automate this process within Potrace, but Inkscape has the ability to automatically convert color images by the process you describe (and using Potrace internally on each color), and you can save the result directly as a PDF or PNG. I hope this helps, -- Peter
Hi Jan, that's an interesting question. As you have noticed, Potrace really only cares about the black parts; it considers white to be background. With --opaque, only interior background regions will be colored in. There is not easy solution within Potrace itself, as Potrace is not currently tailored to handle 3-way intersections (which you get where a black/white border hits the outside border of the image). One external solution is to load the black path (without --opaque) into SVG, create a white...
Hi Jesper, I'm glad you were able to solve the problem. I have not encountered the LNK2019 error before, but it might be related to the difference between C and C++. They mangle the function names differently. Or maybe Visual Studio just didn't know where to find the .a file. For the record, on Windows 64-bit, when compiling with MinGW and then trying to use the libpotrace.a in Visual Studio, you can also sometimes get an LNK1223 error "file contains invalid .pdata contributions". This is related...
Hi Jesper, I probably won't be able to offer much help in debugging your code, as I'm not a very proficient C++ programmer. The function page_svg() was not really intended to be used outside of Potrace; it relies on the global data structure "info" which is defined in main.c. Perhaps the problem is that you have not initialized the info structure. It seems that your info.unit is equal to 0, which would give a division by zero error (see the infinite scaling in your SVG file) and would set all pixels...
Hi Gert, thanks for reporting this. (I receive your message 11 days after you sent it, which is probably another sourceforge problem). It seems that the problem has been resolved. -- Peter
Dear Luc, thanks for writing. This will be really difficult for me to debug, because DXF is not a very well-documented format, and I don't have any "official" software for validating DXF files. Basically I developed the DXF backend with the help of a user who had an AutoCAD license, and we debugged it until AutoCAD would accept the output. It is quite possible that the authors of open source software to read DXF files have had the same problems I was having: trying to define a file format based on...
Thanks for reporting. This is nothing to worry about. The tests check the accuracy of a PostScript of PDF image by comparing the output of Ghostscript to a reference image. Since the output of Ghostscript is not 100% reproducible, the tests have a certain amount of tolerance built in; in the case of the two failures, the tolerances were not quite enough. The attached patch fixes the issue, but you can also just safely ignore the failed tests.
Popup input?
Ccrypt itself does not do this, because it is a command line tool. However, you can easily write a script that prompts the user for the password via a GUI and then invokes ccrypt. For example, the attached is a simple Tcl/TK script (adapted from http://wiki.tcl.tk/3131) that prompts for a password and then echos the password to its standard output. You could pipe the password directly into ccrypt like this: wish getpass.tk | ccrypt -k- myfile This would encrypt the file "myfile" with the password...
Ccrypt itself does not do this, because it is a command line tool. However, you can easily write a script that prompts the user for the password via a GUI and then invokes ccrypt. For example, the attached is a simple Tcl/TK script (adapted from http://wiki.tcl.tk/3131) that prompts for a password and then echos the password to its standard output. You could pipe the password directly into ccrypt like this: wish getpass.tk | ccrypt -k- myfile This would encrypt the file "myfile" with the password...
heap-buffer-overflow /home/hsalo/src/potrace-1.15/src/bitmap.h:148 bm_dup
OK, I'm closing this bug. It is normal for the program to have some memory unfreed when exiting with an error message.
Do you have some sample EMF files that you could send me? Preferably with corresponding EPS or SVG files for comparison. Thanks, -- Peter
Henri, I have been unable to reproduce this particular bug. What compiler options are you using? I used these steps: ./configure make CADD="-Wall -fsanitize=address" ./src/potrace -o /dev/null potrace-1.15-heap-buffer-overflow-bm_dup.sample and it is not reproducing it with potrace 1.15 (or 1.14). In either case I get the expected output "invalid ppm file". The same compiler option does reproduce your previous bug 22. Are you sure you attached the correct file? Thanks, -- Peter
OK, thanks!
Potrace 1.15 released
Daniel, contrary to what I previously thought, I found that defining _XOPEN_SOURCE = 600 breaks the build on some other systems. I am considering using #define _POSIX_C_SOURCE 200809L instead. Could you please check whether this causes any problems on OS X? Thanks, -- Peter
heap buffer overflow in interpolate_cubic in mkbitmap tool
Thanks.
Dear Aix, thanks for the suggestion. I don't know much about the EMF file format, as I am not much of a Windows user. I downloaded Microsoft's documentation for this file format, and it is 275 pages long. Unless there is a huge demand for such a backend, or unless someone else contributed it, it would probably take a very long time until I got around to writing it. Have you tried the SVG output instead of EPS? It seems that SVG is a very common vector file format these days, and there seem to be...
Thanks for reporting this issue. It will be fixed in the next upstream release. Please confirm that the attached patch fixes the problem, and continue fuzzing! Thanks, -- Peter
Mismatched getopt.h used
Yes, moving getopt.h into a subdirectory seems to be a good solution. It will be...
This is an interesting point. Normally, #include <getopt.h> should include the system-wide...
This is an interesting point. Normally, #include <getopt.h> should include the system-wide...
Missing #include
Thanks for reporting this. The _XOPEN_SOURCE macro is defined by source code to declare...
Potrace 1.14 released
ps-ccrypt.el not working with Emacs 24.5.1
Thanks for writing, and sorry for the delayed reply. The Android binaries on the...
ccguess.c:623: loop wierdness ?
This is indeed a bug. The --non-printable option will not work correctly. Thanks...
Hi Bob, thanks for writing. Mkbitmap is for turning grayscale images into black and...
Hi Oscar, it is relatively simple to make a library version of mkbitmap. I have made...
Thansk! Will be fixed in the next release.
Patch to improve compatibility with C++11
Hi BH, that depends on how you have installed your 64-bit tool chain. I got mine...
Potrace 1.13 released
Hi BH, thanks for reporting this. However, I think it may be a bug in Cygwin, rather...
Hi, this STL viewer is supposed to be open source. Where can I find the source code?...
SMP under windows
Suggestion regarding security
ccrypt file format
Hi, sorry for not replying sooner. I missed your request somehow. A brief technical...