, więc utworzyłem obraz PNG przy użyciu chunky_png. Nie chcę zapisywać tego obrazu, ponieważ jest on przydatny tylko dla tego jednego żądania, więc próbuję zapisać ten obraz jako zmienną instancji i wyświetlić go w moim widoku.Wyświetlanie obrazu utworzonego bezpośrednio z chunkypng (bez zapisywania)
Problem polega na tym, że w moim widoku wystąpił błąd invalid byte sequence in UTF-8
.
co zrobiłem:
# controller
@img = source_img.resize(200, 200).to_string
#view
<img src="data:image/png;base64,<%= @img %>" />
debugowania zmienną @img z raise @img.to_yaml
wyjść mi prawidłowy ciąg, f.e .:
--- !binary |-
iVBORw0KGgoAAAANSUhEUgAAAMgAAADIAQAAAACFI5MzAAACP0lEQVR4nO1Y
QY6jQAy0AxJ9a34AH8l29lmRhgDJSDxrwsxHmh80N5Ag3urkjFZabTw5TJ+g
HclWUa6ys5Ots6Ot8xP5/xFhnJIGxo/GdDD9HC+al6iNMpGFVie3kXOiyZET
8bq49cAipRn5bVXOB+CVPiXPXyMRhQb1PDvPRmQZAMWOam/cN1TgpKFEyIVT
pENLDF6oVoCuSCkdSIokEJnICy41K+AojX4psutY5+8011m80O1T4YpXxsOJ
3mjqo2A8Jc+/RD7txVNhWFrJPDnTF41uBfPvoXKJHw/jjt7QLMThqKuj2Ufe
+bUEFDeigtykr1UsVQkT2TP0cjA0H6wuR4VPkKilmMCDACjISmhLXc/64Ap+
mp3RJZ3IFTVpe9aXXHxawKzOY/Ss8WCVHX2u7hjYNa/yxNsWSrEULzJT0Cd1
XgToXEDWx/WgWRtPHKkZGSJ86ccDHjqvy9E1ryHfKORkmwJ+5u7NoqoUoXXQ
axqTYS6Ng2jWukoBD6/7qI+2sc2AmUIKLnUxkHzFMDURVXdHx3hT97pd8hU6
v9B8Ghs0qOnhIO9PybMZQRuumKTM42Ii3o2zew2lYLnBvRKP9ryErjeEd10/
fexmaznti8ZWbopoJV5XKeIGJp6TUEEyDGVXZbV8bGCMqRPbTyQnlpDjNzAk
gZXbNhxLINKH5+XZjsxsJD8DAwjGPtf+CnEDI8xVIX4HQ4aDtlLEDSzx5hdk
M77FuUp5/9mKPHazu5LX97+wMH42qhX8RP4AQpEyh+7r4x0AAAAASUVORK5C
YII=
copiing ten ciąg ręcznie do znacznika img wyświetla obraz prawidłowo.
Jakieś pomysły, co tu jest nie tak? inne pomysły na wyświetlanie tego obrazu bezpośrednio bez oszczędzania?
z góry dzięki! jeśli coś jest niejasne, PROSIMY o komentarz.
Czy próbowałeś dodać to_yaml do swojego src attr? – Yule
@Yule '.to_yaml' nie powoduje awarii aplikacji, ale oczywiście obraz nie zostanie wyświetlony z powodu formatowania yaml. – choise
trochę hack, ale co z .to_yaml.to_s? – Yule