-
-
Notifications
You must be signed in to change notification settings - Fork 56
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Image2latex #751
Image2latex #751
Changes from 5 commits
9be6dc5
670dc14
50420fd
e079ec8
52f88c7
20e0497
0f6c8bd
e042b5c
fd4c54c
e217cfb
4f834c9
f2bfb3c
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,8 @@ | ||
# -*- coding: utf-8 -*- | ||
|
||
import base64 | ||
import tempfile | ||
|
||
from mathics.builtin.box.expression import BoxExpression | ||
|
||
|
||
|
@@ -27,4 +30,12 @@ def boxes_to_mathml(self, elements=None, **options): | |
) | ||
|
||
def boxes_to_tex(self, elements=None, **options): | ||
return "-Image-" | ||
fp = tempfile.NamedTemporaryFile(delete=True, suffix=".png") | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Consider using pillow routines for writing PNG. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The conversion was done when Image is converted in ImageBox. imageBox stores a B64 encoded version of the PNG file. Here we just decode it and store it in a file. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. If ImageBox can keep the pillow structure, that may be a win. A more general problem we have is that in digesting things for M-Expressions we lose the efficient and sometimes more flexible properties of whatever the object was before. And we spend a lot of time in conversion. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is done now. |
||
path = fp.name | ||
fp.close() | ||
base64data = self.elements[0].value.encode("utf-8") | ||
data = base64.decodebytes(data[22:]) | ||
with open(path, "wb") as imgfile: | ||
imgfile.write(data) | ||
|
||
return "\\includegraphics[width=3cm]{" + path + "}" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Without a docstring at the top, this doesn't appear in any printed documentation or in Django docs. If that is intended, then the homegrown tagging such as
ImageBox
(on line 26) is not used.We should decide way we want to go and either add a docstring at the top or remove the homegrown tagging.