mirror of
https://github.com/Flow-Launcher/Flow.Launcher.git
synced 2026-03-11 08:54:32 +00:00
Added SVG for firefox
This commit is contained in:
parent
cab0cb8e5a
commit
d05389c229
1 changed files with 36 additions and 7 deletions
|
|
@ -167,18 +167,47 @@ public abstract class FirefoxBookmarkLoaderBase : IBookmarkLoader
|
|||
}
|
||||
}
|
||||
|
||||
private bool IsSvgData(byte[] data)
|
||||
{
|
||||
if (data == null || data.Length < 5)
|
||||
return false;
|
||||
|
||||
// SVG 파일 시그니처 확인
|
||||
// ASCII로 시작하는 SVG XML 헤더 확인
|
||||
string header = System.Text.Encoding.ASCII.GetString(data, 0, Math.Min(data.Length, 200)).ToLower();
|
||||
|
||||
return header.Contains("<svg") ||
|
||||
header.StartsWith("<?xml") && header.Contains("<svg") ||
|
||||
header.Contains("image/svg+xml");
|
||||
}
|
||||
|
||||
private void SaveBitmapData(byte[] imageData, string outputPath)
|
||||
{
|
||||
try
|
||||
{
|
||||
using var ms = new MemoryStream(imageData);
|
||||
using var bitmap = SKBitmap.Decode(ms);
|
||||
if (bitmap != null)
|
||||
// SVG 파일 시그니처 확인
|
||||
bool isSvg = IsSvgData(imageData);
|
||||
|
||||
if (isSvg)
|
||||
{
|
||||
using var image = SKImage.FromBitmap(bitmap);
|
||||
using var data = image.Encode(SKEncodedImageFormat.Png, 100);
|
||||
using var fs = File.OpenWrite(outputPath);
|
||||
data.SaveTo(fs);
|
||||
// SVG 데이터는 있는 그대로 저장 (.svg 확장자 사용)
|
||||
string svgOutputPath = Path.ChangeExtension(outputPath, ".svg");
|
||||
File.WriteAllBytes(svgOutputPath, imageData);
|
||||
// 원래 경로 대신 SVG 경로를 반환하도록 outputPath 변수를 업데이트
|
||||
File.Copy(svgOutputPath, outputPath, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
// 기존 비트맵 처리 코드
|
||||
using var ms = new MemoryStream(imageData);
|
||||
using var bitmap = SKBitmap.Decode(ms);
|
||||
if (bitmap != null)
|
||||
{
|
||||
using var image = SKImage.FromBitmap(bitmap);
|
||||
using var data = image.Encode(SKEncodedImageFormat.Png, 100);
|
||||
using var fs = File.OpenWrite(outputPath);
|
||||
data.SaveTo(fs);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
|
|
|||
Loading…
Reference in a new issue