THotPDF.OptimizeLoadedImagesByVisualCost Method
מריץ חיפוש איכות חסום עבור תמונות JPEG ו-JPEG 2000 טעונות שעומדות בתנאים, ומאמץ את המועמד בעל העלות הנמוכה ביותר שעומד גם במגבלות האיכות וגם במגבלות החיסכון
הצהרה
function OptimizeLoadedImagesByVisualCost(
const Options: THPDFImageRecompressionCostOptions;
out AInfo: THPDFImageRecompressionCostInfo): Integer;
מודל העלות
כל מועמד מקודד מפוענח ומושווה למקור המפוענח באמצעות שאריות luma ו-chroma בדגימות, על סולם שגיאה תפיסתית מנורמל של 0 עד 100
מועמדים מעלMaximumPerceptualErrorאו מתחת ל-MinimumSavingsBytesנפסלים לפני הניקוד
score = VisualErrorWeight * sqr(error / MaximumPerceptualError)
+ ByteCostWeight * (candidateBytes / sourceBytes)
הניקוד הנמוך ביותר מנצח; בשוויון ניקוד מכריעים גודל מקודד קטן יותר ואז איכות גבוהה יותר, כך שהרצות חוזרות מפיקות את אותו פלט
THPDFImageRecompressionCostOptions
MinimumQuality, MaximumQualityו-QualityStepמגדירים את ניסיונות האיכות החסומים, ואיכות המקסימום נכללת תמיד, גם כאשר הצעד אינו מחלק את הטווח
SampleStrideקובע דגימת משנה דטרמיניסטית של פיקסלים מ-1 ועד 64, ושתי המשקולות הלא שליליות מאפשרות לקוראים להעדיף נאמנות חזותית או פלט קומפקטי
THPDFImageRecompressionCostOptions.Defaultבודק איכות 30 עד 90 בצעדים של 10, מגביל שגיאה תפיסתית ל-3, דורש בייט חיסכון אחד, דוגם כל פיקסל רביעי בכל ממד, ומשקלל שגיאה חזותית ועלות בייטים בשווה
THPDFImageRecompressionCostInfo
התוצאה מדווחת על מספר התמונות שנסרקו ושנחשבו כשירות, על כתיבות מחדש של JPEG ו-JPEG 2000, על ניסיונות קידוד, על פסילות חזותיות ופסילות עלות בייטים, על סכומי איכות נבחרים, על שגיאה תפיסתית מקסימלית שהתקבלה, על סכומי בייטים ועל סטטוסDeterministicSelection
בטיחות
מסכות תמונה, מסכות color-key, spot colours, תמונות Lab ומקורות ICCBased לא RGB נשארים ללא שינוי, ואילו מקורות RGB מכוילים שניתנים להמרה משמרים מרחב צבע פלט מכויל מפורש
ביטול נבדק לפני כל תמונה וכל ניסיון קידוד, ואף source stream אינו מוחלף אלא אם נבחר מועמד מקובל שלם