mirror of
https://github.com/SimpleMobileTools/Simple-Draw.git
synced 2025-02-15 03:00:41 +01:00
properly save SVG files, not just as fake PNGs
This commit is contained in:
parent
b83f054bcd
commit
73bb9a18cd
@ -190,7 +190,11 @@ class MainActivity : SimpleActivity(), CanvasListener {
|
|||||||
tryOpenUri(resultData.data!!, resultData)
|
tryOpenUri(resultData.data!!, resultData)
|
||||||
} else if (requestCode == SAVE_IMAGE_INTENT && resultCode == Activity.RESULT_OK && resultData != null && resultData.data != null) {
|
} else if (requestCode == SAVE_IMAGE_INTENT && resultCode == Activity.RESULT_OK && resultData != null && resultData.data != null) {
|
||||||
val outputStream = contentResolver.openOutputStream(resultData.data!!)
|
val outputStream = contentResolver.openOutputStream(resultData.data!!)
|
||||||
saveToOutputStream(outputStream, defaultPath.getCompressionFormat(), false)
|
if (defaultExtension == SVG) {
|
||||||
|
Svg.saveToOutputStream(this, outputStream, my_canvas)
|
||||||
|
} else {
|
||||||
|
saveToOutputStream(outputStream, defaultPath.getCompressionFormat(), false)
|
||||||
|
}
|
||||||
savedPathsHash = my_canvas.getDrawingHashCode()
|
savedPathsHash = my_canvas.getDrawingHashCode()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,17 +18,20 @@ import java.util.*
|
|||||||
|
|
||||||
object Svg {
|
object Svg {
|
||||||
fun saveSvg(activity: SimpleActivity, path: String, canvas: MyCanvas) {
|
fun saveSvg(activity: SimpleActivity, path: String, canvas: MyCanvas) {
|
||||||
val backgroundColor = (canvas.background as ColorDrawable).color
|
|
||||||
|
|
||||||
activity.getFileOutputStream(FileDirItem(path, path.getFilenameFromPath()), true) {
|
activity.getFileOutputStream(FileDirItem(path, path.getFilenameFromPath()), true) {
|
||||||
if (it != null) {
|
saveToOutputStream(activity, it, canvas)
|
||||||
val writer = BufferedWriter(OutputStreamWriter(it))
|
}
|
||||||
writeSvg(writer, backgroundColor, canvas.mPaths, canvas.width, canvas.height)
|
}
|
||||||
writer.close()
|
|
||||||
activity.toast(R.string.file_saved)
|
fun saveToOutputStream(activity: SimpleActivity, outputStream: OutputStream?, canvas: MyCanvas) {
|
||||||
} else {
|
if (outputStream != null) {
|
||||||
activity.toast(R.string.unknown_error_occurred)
|
val backgroundColor = (canvas.background as ColorDrawable).color
|
||||||
}
|
val writer = BufferedWriter(OutputStreamWriter(outputStream))
|
||||||
|
writeSvg(writer, backgroundColor, canvas.mPaths, canvas.width, canvas.height)
|
||||||
|
writer.close()
|
||||||
|
activity.toast(R.string.file_saved)
|
||||||
|
} else {
|
||||||
|
activity.toast(R.string.unknown_error_occurred)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user