Skip to content

Instantly share code, notes, and snippets.

View otmb's full-sized avatar

Manabu Otsu otmb

  • Infocom
  • Tokyo
View GitHub Profile
@otmb
otmb / PDFCombineView.swift
Last active September 10, 2023 08:58
Create and combine PDFs of SwiftUI layouts
import SwiftUI
import PDFKit
let pdfDocumentOptions = [
kCGPDFContextCreator: "@mbotsu",
kCGPDFContextAuthor: "@mbotsu",
kCGPDFContextTitle: "Create and combine PDFs with SwiftUI layouts",
kCGPDFContextSubject: "Give up ImageRenderer and create PDFs with UIGraphicsPDFRenderer",
] as [PDFDocumentWriteOption : Any]
@otmb
otmb / ContentView.swift
Last active September 9, 2023 12:53
When outputting PDF with SwiftUI, Table cannot be used with ImageRenderer, so use UIGraphicsPDFRenderer
import SwiftUI
struct ContentView: View {
@State var pdfUrl: URL?
var body: some View {
VStack {
if let pdfUrl = pdfUrl {
PreviewView(url: pdfUrl)
}
}
@otmb
otmb / iosConversions.swift
Last active February 19, 2023 10:18
When you can't set `-all_load` to Other Linker Flags
// https://github.com/opencv/opencv/blob/master/modules/imgcodecs/src/ios_conversions.mm
// https://github.com/opencv/opencv/blob/master/modules/imgcodecs/src/apple_conversions.mm
func MatToCGImage(image:Mat) -> CGImage? {
let data = Data(bytes: image.dataPointer(), count: image.step1() * Int(image.rows()))
let colorSpace = image.elemSize() == 1 ? CGColorSpaceCreateDeviceGray() : CGColorSpaceCreateDeviceRGB()
let provider = CGDataProvider(data: data as CFData);
let alpha = image.channels() == 4;
let bitmapInfo: CGBitmapInfo = CGBitmapInfo(rawValue: (alpha ? CGImageAlphaInfo.last : CGImageAlphaInfo.none).rawValue | CGBitmapInfo.byteOrderDefault.rawValue)
@otmb
otmb / ContentView.swift
Last active August 1, 2024 01:18
WKWebView can read a wasm from a localfile with XMLHttpRequest, but returns an error with fetch
import SwiftUI
import WebKit
enum WebViewError: Error {
case contentConversion(String)
case emptyFileName
case inivalidFilePath
var message: String {
switch self {
@otmb
otmb / example.py
Created April 16, 2021 09:20
OpenVINO 日本語手書き文字認識 to TensorflowLite model test
import sys
import cv2
import numpy as np
import tensorflow as tf
def preprocess_input(image_name, height, width):
src = cv2.imread(image_name, cv2.IMREAD_GRAYSCALE)
ratio = float(src.shape[1]) / float(src.shape[0])
tw = int(height * ratio)
rsz = cv2.resize(src, (tw, height), interpolation=cv2.INTER_AREA).astype(np.float32)
@otmb
otmb / StreamTest.swift
Created January 16, 2020 15:42
Playground Swift5
import UIKit
extension OutputStream {
func write(data: Data) -> Int {
return data.withUnsafeBytes {
write($0.bindMemory(to: UInt8.self).baseAddress!, maxLength: data.count)
}
}
var data: Data? {
@otmb
otmb / MyGenerateImageAnchor.cs
Created November 30, 2018 05:40
iOS ImageTracking and PointCLoud
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.XR.iOS;
public class MyGenerateImageAnchor : MonoBehaviour {
[SerializeField]
private ARReferenceImage referenceImage;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// https://www.csharpcodi.com/vs2/1607/MBINCompiler/MBINCompiler/HalfHelper.cs/
public static class HalfHelper
{
private static uint[] mantissaTable = GenerateMantissaTable();
private static uint[] exponentTable = GenerateExponentTable();
@otmb
otmb / KinectView.cs
Last active December 4, 2018 09:48
KinectV2 visualize
using UnityEngine;
using Windows.Kinect;
using System.Runtime.InteropServices;
using System;
using System.Linq;
using UnityEngine.Rendering;
[RequireComponent(typeof(MeshRenderer))]
[RequireComponent(typeof(MeshFilter))]
public class KinectView : MonoBehaviour {