dpbvpgvrhwxen3222 2019-01-16 21:14
浏览 279

如何将rgb jpg图像转换为cmyk jpg

I am trying to convert an image uploaded as an rgb jpg image to a cmyk jpg image or even pdf. I need this to be cmyk to support some of our printers. Here is the code I was working with that does output an image, but whenever I check it in Adobe Illustrator it always shows up as rgb image.

    reader, err := os.Open("src.jpg")
    if err != nil {
        log.Fatal(err)
    }
    defer reader.Close()

    m, _, err := image.Decode(reader)
    if err != nil {
        log.Fatal(err)
    }

    bounds := m.Bounds()
    rect := image.Rect(0, 0, bounds.Dx(), bounds.Dy())
    cmyk := image.NewCMYK(rect)

    draw.Draw(cmyk, cmyk.Bounds(), m, bounds.Min, draw.Src)
    cmykImage := cmyk.SubImage(rect)

    out, err := os.Create("./output.jpg")
    var opt jpeg.Options
    opt.Quality = 100

    jpeg.Encode(out, cmykImage, &opt)
    if err != nil {
        fmt.Println(err)
        os.Exit(1)
    }

EDIT: Gave up trying to find native go solution, instead installed imagemagick and call its colorspace conversion cli from go.

    cmd := exec.Command("convert", "src.jpg", "-colorspace", "CMYK", "output.jpg")
    err := cmd.Start()
    if err != nil {
        log.Fatal(err)
    }
    log.Printf("Waiting for command to finish...")
    err = cmd.Wait()

    fmt.Println("Converted jpg")
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 c程序不知道为什么得不到结果
    • ¥40 复杂的限制性的商函数处理
    • ¥15 程序不包含适用于入口点的静态Main方法
    • ¥15 素材场景中光线烘焙后灯光失效
    • ¥15 请教一下各位,为什么我这个没有实现模拟点击
    • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
    • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
    • ¥20 有关区间dp的问题求解
    • ¥15 多电路系统共用电源的串扰问题
    • ¥15 slam rangenet++配置