Separate PSD blend mode calculation into it's own function
This commit is contained in:
parent
d637f65851
commit
7c36cc864f
1 changed files with 101 additions and 83 deletions
|
@ -30,6 +30,107 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserInterfaceValidations {
|
|||
savePanel.accessoryView = accessoryView as NSView
|
||||
}
|
||||
|
||||
func getBitmapType(_ ext : String) -> NSBitmapImageRep.FileType {
|
||||
switch(ext) {
|
||||
case "tiff":
|
||||
return .tiff
|
||||
case "bmp":
|
||||
return .bmp
|
||||
case "jpeg":
|
||||
return .jpeg
|
||||
case "png":
|
||||
return .png
|
||||
default:
|
||||
return .png
|
||||
}
|
||||
}
|
||||
|
||||
func getPSDBlendMode(_ layer : SilicaLayer) -> PSDBlendModes {
|
||||
if layer.data.blendMode == 1 {
|
||||
return kPSDBlendModeMultiply
|
||||
}
|
||||
if layer.data.blendMode == 10 {
|
||||
return kPSDBlendModeColorBurn
|
||||
}
|
||||
if layer.data.blendMode == 19 {
|
||||
return kPSDBlendModeDarken
|
||||
}
|
||||
if layer.data.blendMode == 8 {
|
||||
return kPSDBlendModeLinearBurn
|
||||
}
|
||||
if layer.data.blendMode == 4 {
|
||||
return kPSDBlendModeLighten
|
||||
}
|
||||
if layer.data.blendMode == 2 {
|
||||
return kPSDBlendModeScreen
|
||||
}
|
||||
if layer.data.blendMode == 13 {
|
||||
//blendMode = kPSDBlendModeHardLight
|
||||
}
|
||||
if layer.data.blendMode == 9 {
|
||||
return kPSDBlendModeColorDodge
|
||||
}
|
||||
if layer.data.blendMode == 3 {
|
||||
//blendMode = kPSDBlendModeSubtract
|
||||
}
|
||||
if layer.data.blendMode == 0 && layer.data.blendMode != layer.data.extendedBlend {
|
||||
if layer.data.extendedBlend == 25 {
|
||||
return kPSDBlendModeDarkerColor
|
||||
}
|
||||
if layer.data.extendedBlend == 24 {
|
||||
//blendMode = kPSDBlendModeLighterColor
|
||||
}
|
||||
if layer.data.extendedBlend == 21 {
|
||||
//blendMode = kPSDBlendModeVividLight
|
||||
}
|
||||
if layer.data.extendedBlend == 22 {
|
||||
//blendMode = kPSdBlendModeLinearLight
|
||||
}
|
||||
if layer.data.extendedBlend == 23 {
|
||||
//blendMode = kPSDBlendModePinLight
|
||||
}
|
||||
if layer.data.extendedBlend == 20 {
|
||||
//blendMode = kPSDBlendModeHardMix
|
||||
}
|
||||
if layer.data.extendedBlend == 26 {
|
||||
//blendMode = kPSDBlendModeDivide
|
||||
}
|
||||
}
|
||||
|
||||
if layer.data.blendMode == 11 {
|
||||
//blendMode = kPSDBlendModeOverlay
|
||||
}
|
||||
if layer.data.blendMode == 17 {
|
||||
//return .softLight
|
||||
}
|
||||
if layer.data.blendMode == 12 {
|
||||
//return .hardLight
|
||||
}
|
||||
if layer.data.blendMode == 6 {
|
||||
//return .difference
|
||||
}
|
||||
if layer.data.blendMode == 5 {
|
||||
//return .exclusion
|
||||
}
|
||||
if layer.data.blendMode == 7 {
|
||||
//return .componentAdd
|
||||
}
|
||||
if layer.data.blendMode == 15 {
|
||||
//return .hue
|
||||
}
|
||||
if layer.data.blendMode == 16 {
|
||||
//return .saturation
|
||||
}
|
||||
if layer.data.blendMode == 13 {
|
||||
//return .color
|
||||
}
|
||||
if layer.data.blendMode == 14 {
|
||||
//return .luminosity
|
||||
}
|
||||
|
||||
return kPSDBlendModeNormal
|
||||
}
|
||||
|
||||
@IBAction func exportAction(_ sender: Any) {
|
||||
let document = NSApplication.shared.keyWindow?.windowController?.document as? Document;
|
||||
|
||||
|
@ -92,89 +193,6 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserInterfaceValidations {
|
|||
|
||||
let finalCgImage = context.createCGImage(masterImage, from: document!.info.cgRect, format: .RGBA8, colorSpace: document!.info.colorSpace)
|
||||
|
||||
var blendMode: PSDBlendModes = kPSDBlendModeNormal
|
||||
if layer.data.blendMode == 1 {
|
||||
blendMode = kPSDBlendModeMultiply
|
||||
}
|
||||
if layer.data.blendMode == 10 {
|
||||
blendMode = kPSDBlendModeColorBurn
|
||||
}
|
||||
if layer.data.blendMode == 19 {
|
||||
blendMode = kPSDBlendModeDarken
|
||||
}
|
||||
if layer.data.blendMode == 8 {
|
||||
blendMode = kPSDBlendModeLinearBurn
|
||||
}
|
||||
if layer.data.blendMode == 4 {
|
||||
blendMode = kPSDBlendModeLighten
|
||||
}
|
||||
if layer.data.blendMode == 2 {
|
||||
blendMode = kPSDBlendModeScreen
|
||||
}
|
||||
if layer.data.blendMode == 13 {
|
||||
//blendMode = kPSDBlendModeHardLight
|
||||
}
|
||||
if layer.data.blendMode == 9 {
|
||||
blendMode = kPSDBlendModeColorDodge
|
||||
}
|
||||
if layer.data.blendMode == 3 {
|
||||
//blendMode = kPSDBlendModeSubtract
|
||||
}
|
||||
if layer.data.blendMode == 0 && layer.data.blendMode != layer.data.extendedBlend {
|
||||
if layer.data.extendedBlend == 25 {
|
||||
blendMode = kPSDBlendModeDarkerColor
|
||||
}
|
||||
if layer.data.extendedBlend == 24 {
|
||||
//blendMode = kPSDBlendModeLighterColor
|
||||
}
|
||||
if layer.data.extendedBlend == 21 {
|
||||
//blendMode = kPSDBlendModeVividLight
|
||||
}
|
||||
if layer.data.extendedBlend == 22 {
|
||||
//blendMode = kPSdBlendModeLinearLight
|
||||
}
|
||||
if layer.data.extendedBlend == 23 {
|
||||
//blendMode = kPSDBlendModePinLight
|
||||
}
|
||||
if layer.data.extendedBlend == 20 {
|
||||
//blendMode = kPSDBlendModeHardMix
|
||||
}
|
||||
if layer.data.extendedBlend == 26 {
|
||||
//blendMode = kPSDBlendModeDivide
|
||||
}
|
||||
}
|
||||
|
||||
if layer.data.blendMode == 11 {
|
||||
//blendMode = kPSDBlendModeOverlay
|
||||
}
|
||||
if layer.data.blendMode == 17 {
|
||||
//return .softLight
|
||||
}
|
||||
if layer.data.blendMode == 12 {
|
||||
//return .hardLight
|
||||
}
|
||||
if layer.data.blendMode == 6 {
|
||||
//return .difference
|
||||
}
|
||||
if layer.data.blendMode == 5 {
|
||||
//return .exclusion
|
||||
}
|
||||
if layer.data.blendMode == 7 {
|
||||
//return .componentAdd
|
||||
}
|
||||
if layer.data.blendMode == 15 {
|
||||
//return .hue
|
||||
}
|
||||
if layer.data.blendMode == 16 {
|
||||
//return .saturation
|
||||
}
|
||||
if layer.data.blendMode == 13 {
|
||||
//return .color
|
||||
}
|
||||
if layer.data.blendMode == 14 {
|
||||
//return .luminosity
|
||||
}
|
||||
|
||||
if(layer.mask != nil) {
|
||||
writer?.addLayer(with: document!.makeBlendImage(layer), andName: layer.name + " (Mask)", andOpacity: 1.0, andOffset: .zero)
|
||||
}
|
||||
|
|
Reference in a new issue